Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to import Azure BlobService in python?

We are able to import azure.storage, but not access the BlobService attribute

The documentation says to use the following import statement:

from azure.storage import BlobService

But that get's the following error:

ImportError: cannot import name BlobService

We tried the following:

import azure.storage
...
foo = azure.storage.BlobService(...)

But that received the following error:

AttributeError: ‘module’ object has no attribute ‘BlobService’

We also tried all of the above with "azure.storage.blob" instead of "azure.storage"

We tried updating azure-storage package but it is up to date (version 0.30.0)

We also tried uninstalling azure-storage and installing the entire azure package, but we got the same results. We tried installing them with both pip and conda, but same results both times.

I am aware that the output suggests that this version of azure.storage has no BlobService attribute, but the documentation clearly states to import from there.

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

like image 331
user3664942 Avatar asked Feb 22 '16 16:02

user3664942


2 Answers

If you want to use BlobService, you could install package azure.storage 0.20.0, there is BlobService in that version. In the latest azure.storage 0.30.0 , BlobSrvice is split into BlockBlobService, AppendBlobService, PageBlobService object, you could use BlockBlobService replace BlobService.

like image 189
Lily_user4045 Avatar answered Nov 02 '22 13:11

Lily_user4045


It's possible the library has changed since that tutorial was published, but...

I just tried this a few moments ago, successfully:

from azure.storage.blob import BlockBlobService

blob_service = BlockBlobService(account_name="...",account_key="...")

And I installed Azure storage locally via:

pip install azure-storage

I was able to test this by downloading an object from storage:

blob_service.get_blob_to_path("containername","blobname","localfilename")

Note: You could import PageBlobService in similar fashion, but you might not find that too valuable, since page blobs are primarily for vhd's.

like image 11
David Makogon Avatar answered Nov 02 '22 14:11

David Makogon