Azure.storageをインポートできますが、BlobService属性にはアクセスできません
ドキュメントには、次のインポートステートメントを使用するように記載されています。
from Azure.storage import BlobService
しかし、それは次のエラーです:
ImportError: cannot import name BlobService
私たちは以下を試しました:
import Azure.storage
...
foo = Azure.storage.BlobService(...)
しかし、それは次のエラーを受け取りました:
AttributeError: ‘module’ object has no attribute ‘BlobService’
「Azure.storage」の代わりに「Azure.storage.blob」を使用して上記のすべてを試しました
Azureストレージパッケージの更新を試みましたが、最新です(バージョン0.30.0)
AzureストレージのアンインストールとAzureパッケージ全体のインストールも試みましたが、同じ結果が得られました。私たちはそれらをpipとcondaの両方でインストールしようとしましたが、どちらも同じ結果になります。
この出力から、このバージョンのAzure.storageにはBlobService属性がないことがわかりますが、ドキュメントにはそこからインポートすることが明記されています。
BlobService
を使用する場合は、パッケージAzure.storage 0.20.0
をインストールできます。そのバージョンにはBlobService
があります。最新のAzure.storage 0.30.0
では、BlobSrviceはBlockBlobService, AppendBlobService, PageBlobService
オブジェクトに分割され、BlockBlobService
replace BlobService
を使用できます。
そのチュートリアルが公開されてからライブラリが変更された可能性がありますが...
私はほんの少し前にこれを試しましたが、成功しました:
from Azure.storage.blob import BlockBlobService
blob_service = BlockBlobService(account_name="...",account_key="...")
そして、Azureストレージをローカルにインストールしました:
pip install Azure-storage
ストレージからオブジェクトをダウンロードすることでこれをテストすることができました:
blob_service.get_blob_to_path("containername","blobname","localfilename")
注:同様の方法でPageBlobService
をインポートすることもできますが、ページblobは主にvhd用であるため、あまり価値があるとは思わないかもしれません。
Azureパッケージをインストールするためにpipを使用した後も同じ問題が発生しました。選択した回答が示すように、これはAzure.storage 0.33.0をインストールすることで修正できます。
ただし、pipを使用している場合、正しくインストールするために「--upgrade」オプションを使用する必要がある場合があります(これは私の経験でした)。
pip install Azure-storage --upgrade
Ubuntuサーバー16.04 LTSにバージョン1.0.3(Azure.storageバージョン0.20を含む)をインストールし、Azureパッケージをアンインストールして再インストールしたときに、pipはバージョン0.20のAzure.storageのみを再インストールしました。これは、Azureパッケージv。2.0.0rc6のpypiページによると、1.0.3からバージョン2にアップグレードすることをお勧めします
Sudo pip3 uninstall Azure
Sudo pip3 install Azure
代わりに、これは私にとってはうまくいきました、
Sudo pip3 uninstall Azure
Sudo pip3 install Azure==2.0.0rc6