如何在python中导入Azure BlobService?

use*_*942 14 python azure azure-storage-blobs

我们可以导入azure.storage,但不能访问BlobService属性

文档说使用以下import语句:

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

但是得到以下错误:

ImportError: cannot import name BlobService
Run Code Online (Sandbox Code Playgroud)

我们尝试了以下方法:

import azure.storage
...
foo = azure.storage.BlobService(...)
Run Code Online (Sandbox Code Playgroud)

但是收到了以下错误:

AttributeError: ‘module’ object has no attribute ‘BlobService’
Run Code Online (Sandbox Code Playgroud)

我们还用"azure.storage.blob"代替"azure.storage"尝试了上述所有内容

我们尝试更新azure-storage软件包,但它是最新的(版本0.30.0)

我们还尝试卸载azure-storage并安装整个azure包,但我们得到了相同的结果.我们尝试用pip和conda安装它们,但两次都是相同的结果.

我知道输出表明此版本的azure.storage没有BlobService属性,但文档明确指出要从那里导入.

https://azure.microsoft.com/en-us/documentation/articles/machine-learning-data-science-create-features-blob/

Lil*_*045 21

呀,如果你想使用BlobService,你可以安装包azure.storage 0.20.0,BlobService那个版本.最近azure.storage 0.30.0,BlobSrvice被拆分为BlockBlobService, AppendBlobService, PageBlobService对象,你可以使用BlockBlobServicereplace BlobService.有许多文章需要更新内容.

  • pip install azure-storage == 0.20.0 (4认同)

Dav*_*gon 10

自该教程发布以来,该库可能已发生变化,但......

我刚刚尝试过这个,成功:

from azure.storage.blob import BlockBlobService

blob_service = BlockBlobService(account_name="...",account_key="...")
Run Code Online (Sandbox Code Playgroud)

我通过以下方式在本地安装Azure存储:

pip install azure-storage
Run Code Online (Sandbox Code Playgroud)

我能够通过从存储中下载一个对象来测试它:

blob_service.get_blob_to_path("containername","blobname","localfilename")
Run Code Online (Sandbox Code Playgroud)

注意:您可以PageBlobService以类似的方式导入,但您可能没有发现它太有价值,因为页面blob主要用于vhd.

  • 这是对的。上周根据[此公告]发布了0.30.0(https://github.com/Azure/azure-storage-python/issues/132)。有一个关于使用Blob的完全最新的教程[此处](https://azure.microsoft.com/zh-cn/documentation/articles/storage-python-how-to-use-blob-storage/)。您所看的教程看起来像是在0.20.0之前的版本中,因此,如果要完全按照书面使用,则需要进行相当大的回归。我跟进它的作者,看他们是否可以更新它。 (2认同)