Home > Mobile >  Python Azure: generate_account_sas not found
Python Azure: generate_account_sas not found

Time:03-08

I'm trying to generate sas token for accessing Azure storage. While referencing to online samples, I came accross this sample code snippet:

from azure.storage.blob import BlockBlobService, BlobPermissions, generate_account_sas

However, it fails to find generate_account_sas module. I suspected it could be due to Azure versions, and tried pip uninstall azure, then pip install azure-storage-blob==12.9.0 azure-core==1.21.1. This allows me to access in a different manner though:

from azure.storage.blob._shared_access_signature import generate_account_sas

However, it would also require me to revise all those BlockBlobService related lines in my code as well.

My question is, how can I use generate_account_sas in the form of my original way, without uninstalling and re-installing those packages?

CodePudding user response:

As mentioned in this answer, there were breaking changes introduced to the azure-storage library since 0.37.0. According to the change log, not only has the namespaces been changed, but the library has also been split into 5 different packages:

  1. azure-storage-common
  2. azure-storage-blob
  3. azure-storage-file
  4. azure-storage-queue
  5. azure-storage-nspkg

I believe you were following the new guide which uses azure-storage-blob and were trying to use code for the old azure-storage library, thus the ImportError.

Since BlockBlobService is from the old azure-storage library, to continue using it, you need to pip uninstall azure-storage-blob if you have installed the new library by accident, and then pip install azure-storage to install the old library. So, As of my knowledge you need to uninstall and reinstall those packages is the only way.

Please refer these Ref,,Ref1,Ref2, Ref3 for clear overview.

  • Related