BlockBlobService 类位于 Python Azure 模块中的什么位置?

Del*_*lla 4 azure azure-storage python-3.x conda azure-blob-storage

我对使用 microsoft azure 服务还很陌生,并尝试按照https://learn.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-python中的教程使用 Python 3.5.6 Windows PC 上的 conda 4.5.11 分发版。

导入 azure 时遇到的第一个问题是我无法以通常的方式查看版本。这意味着

azure.__version__ 
Run Code Online (Sandbox Code Playgroud)

给出一个错误。

然后,这行代码给我一个错误,说它既不能导入名称 BlockBlobService,也不能导入名称 PublicAccess。似乎两者都已被弃用,或者我自己使用一些旧版本。

from azure.storage.blob import BlockBlobService, PublicAccess  #Option 1
Run Code Online (Sandbox Code Playgroud)

但是,以下导入正在运行。

from azure.storage.blob import BlobService #Option 2 
Run Code Online (Sandbox Code Playgroud)

但问题是在我创建本地文件并尝试使用某种create_blob_from_path方法上传(按照教程中的建议)后,该​​方法要么不存在,要么已弃用。

我在网上查找了此 BlockBlobService 问题的解决方案,并且似乎对于要导入的正确模块层次结构和类名一直存在困惑。例如,一位用户从图书馆获得了一些官方文档,其中建议这样做,但这也不起作用。

from azure.storage import BlobService #Option 3
Run Code Online (Sandbox Code Playgroud)

还有其他人对此提出了一些投诉,至少在我的系统上有效。但这不会导入所需的 Blob 对象。

import azure.storage.blob #Option 4
Run Code Online (Sandbox Code Playgroud)

此外,根据本文档,https://learn.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发挥作用呢?

Arn*_*was 5

截至 2020 年 11 月,Azure 维护两个版本的存储 SDK:

2.1 被认为是 API 的旧版本(链接):

本快速入门使用旧版本的 Azure Blob 存储客户端库。要开始使用最新版本,请参阅快速入门:使用 Python v12 SDK 管理 blob。

BlockBlobService位于 v2.1 中,应避免使用。请改用 v12 版本