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

Where is the BlockBlobService Class Located in Python Azure Module?

我对使用 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 问题的解决方案,似乎一直对正确的模块层次结构和要导入的 class 名称感到困惑。例如,一位用户从图书馆获得了一些官方文档,建议这样做,但这也不起作用。

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 class 位于 azure.storage.blob.blockblobservice 模块中。但是当我也尝试导入它时,解释器会抛出一个导入错误。

大多数建议的解决方案都围绕一些 upgrading/downgrading 版本,但是,愚蠢的我,我什至无法像为其他模块那样找到 azure 模块的版本。此外,似乎许多解决方案都是针对 Linux 上的 pip3 运行,因此我在 Windows 上使用 conda 4.5.11。那么如何让 azure API 起作用呢?

在 windows 上,您应该使用 pip install azure

我的环境是windows10和python3.6.5,但我没有使用conda。

首先在cmd中,运行pip install azure,截图如下:

然后在pycharm中尝试使用from xxx import xx,截图如下:

对于BlockBlobService

对于PublicAccess

BlockBlobService位置:

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

2.1 被认为是 API (Link) 的遗留版本:

This quickstart uses a legacy version of the Azure Blob storage client library. To get >started with the latest version, see Quickstart: Manage blobs with Python v12 SDK.

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