从“azure.storage.blob”导入“BlobServiceClient”时出错
Posted
技术标签:
【中文标题】从“azure.storage.blob”导入“BlobServiceClient”时出错【英文标题】:error importing 'BlobServiceClient' from 'azure.storage.blob' 【发布时间】:2020-03-05 04:44:27 【问题描述】:我有以下代码行:
from azure.storage.blob import BlobServiceClient
我收到以下错误:
from azure.storage.blob import BlobServiceClient
ImportError: cannot import name 'BlobServiceClient' from 'azure.storage.blob' (/home/user-name/.local/lib/python3.7/site-packages/azure/storage/blob/__init__.py)
我在 PythonAnywhere 和我的本地机器上都有这个错误。 我正在关注教程here
我已经阅读了 github 上的this post,但无济于事。
缺少什么?我要实现的目标是当我有 URI 和共享密钥时访问容器中的 blob。
感谢任何帮助。
【问题讨论】:
我无法在 PythonAnywhere 上重现它。我所做的是:pip3.7 install azure-storage-blob --user
在 bash 控制台中,然后是 python3.7 -c "from azure.storage.blob import BlobServiceClient
,它工作得很好。
【参考方案1】:
您能否检查pip list
并确保您拥有最新版本的 azure-storage-blob,即 >= 12.0.0?
BlobServiceClient 是在 12.0.0 中引入的。
如果您有旧版本,请执行
pip install azure-storage-blob --upgrade
此外,azure-storage-blob v 12.0.0 及更高版本已移至不同的存储库 https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/storage/azure-storage-blob
【讨论】:
我有 azure 存储版本 12.5.0 但仍然出现无法导入 baseblobservice 模块错误。 @Ateeb BaseBlobService 从 12.0.0 开始弃用 - 考虑使用 BlobServiceClient【参考方案2】:就我而言,我先安装了 azure,然后出现此错误。通过执行以下步骤,它现在可以正常工作了:
-
使用以下命令卸载 azure-storage-blob:pip uninstall azure-storage-blob。
使用以下命令重新安装 azure-storage-blob:pip install azure-storage-blob。
【讨论】:
【参考方案3】:看来问题出在我使用的 azure-storage-blob 版本或我安装其他 azure 库(通用库、核心库等)的顺序上。我卸载了所有东西,只安装了 azure-storage-blob 并且它工作正常。
【讨论】:
以上是关于从“azure.storage.blob”导入“BlobServiceClient”时出错的主要内容,如果未能解决你的问题,请参考以下文章
Azure.Cosmos 还是 Microsoft.Azure.Cosmos、Azure.Storage.Blob 还是 Microsoft.Azure.Storage.Blob?适用于 .NET C
ImportError:没有名为 azure.storage.blob 的模块(执行 syncdb 时)
在 Scala 中使用带有 java.nio.channels.ClosedChannelException 的 com.azure.storage.blob 包的基本 blob 下载失败