BlockBlobService 类位于 Python Azure 模块中的啥位置?
Posted
技术标签:
【中文标题】BlockBlobService 类位于 Python Azure 模块中的啥位置?【英文标题】:Where is the BlockBlobService Class Located in Python Azure Module?BlockBlobService 类位于 Python Azure 模块中的什么位置? 【发布时间】:2019-03-09 17:03:00 【问题描述】:我对使用 microsoft azure 服务并尝试遵循https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-python 在 Windows PC 上的 conda 4.5.11 发行版中使用 Python 3.5.6 中的教程非常陌生。
我在导入 azure 时遇到的第一个问题是我无法以通常的方式看到版本。这意味着
azure.__version__
给出一个错误。
然后,这行代码给了我一个错误,说它既不能导入名称 BlockBlobService,也不能导入 PublicAccess。似乎两者都已被弃用,或者我自己正在使用一些旧版本。
from azure.storage.blob import BlockBlobService, PublicAccess #Option 1
但是,以下导入正在运行。
from azure.storage.blob import BlobService #Option 2
但是这个问题是在我创建一个本地文件并尝试使用create_blob_from_path
方法上传之后(如教程中所建议的那样),该方法不存在或已弃用。
我在网络上查看了此 BlockBlobService 问题的解决方案,似乎一直对正确的模块层次结构和要导入的类名感到困惑。例如,一位用户从库中获得了一些官方文档,该文档对此提出了建议,但这也不起作用。
from azure.storage import BlobService #Option 3
还有其他人对此报告了一些投诉,至少在我的系统上运行。但这不会导入所需的 Blob 对象。
import azure.storage.blob #Option 4
此外,根据本文档,https://docs.microsoft.com/en-us/python/api/azure-storage-blob/azure.storage.blob.blockblobservice.blockblobservice?view=azure-python
BlockBlobService
类位于azure.storage.blob.blockblobservice
模块中。但是当我尝试导入时,解释器也会抛出导入错误。
大多数提议的解决方案都围绕着一些版本的升级/降级,但是,愚蠢的我,不知何故,我什至无法像其他模块那样找到 azure 模块的版本。此外,似乎许多解决方案都适用于在 Linux 上运行的 pip3,因此我在 Windows 上使用 conda 4.5.11。那么如何让 azure API 工作呢?
【问题讨论】:
【参考方案1】:截至 2020 年 11 月,Azure 维护两个版本的存储 SDK:
v12 (Link) v2.1 (Link)2.1 被认为是 API 的旧版本 (Link):
本快速入门使用旧版 Azure Blob 存储客户端库。要>开始使用最新版本,请参阅快速入门:使用 Python v12 SDK 管理 blob。
BlockBlobService
位于 v2.1 中,应避免使用。 改用 v12 版本。
【讨论】:
【参考方案2】:在 Windows 上,您应该使用pip install azure
。
我的环境是带有python 3.6.5的windows 10,但是我没有使用conda。
首先在cmd中运行pip install azure
,截图如下:
然后在pycharm中,尝试使用from xxx import xx
,截图如下:
对于BlockBlobService
:
对于PublicAccess
:
BlockBlobService
位置:
【讨论】:
不幸的是,这不再起作用,我在尝试“pip install azure”时收到以下错误消息:从 v5.0.0 开始,“azure”元包已被弃用,无法再安装。 “BlockBlobService”类是否有任何替代品(似乎在较新版本的“azure-storage-blob”中被删除)? @user1432032,是的,在较新的版本中已将其删除。您应该在较新的版本中使用BlobServiceClient
。以上是关于BlockBlobService 类位于 Python Azure 模块中的啥位置?的主要内容,如果未能解决你的问题,请参考以下文章