Python Azure模块中的BlockBlobService类在哪里?

时间:2018-10-04 10:26:08

标签: python-3.x azure azure-storage azure-storage-blobs conda

使用微软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.__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起作用呢?

2 个答案:

答案 0 :(得分:0)

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

我的环境是带有python 3.6.5的Windows 10,但是我没有使用conda。

首先,在cmd中运行pip install azure,屏幕截图如下: enter image description here

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

对于BlockBlobServiceenter image description here

对于PublicAccessenter image description here

BlockBlobService位置: enter image description here

答案 1 :(得分:0)

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

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

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

BlockBlobService位于v2.1中,应避免使用。