web-dev-qa-db-fra.com

Comment importer Azure BlobService en python?

Nous pouvons importer Azure.storage, mais pas accéder à l'attribut BlobService

La documentation indique d'utiliser l'instruction d'importation suivante:

from Azure.storage import BlobService

Mais c'est l'erreur suivante:

ImportError: cannot import name BlobService

Nous avons essayé ce qui suit:

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

Mais cela a reçu l'erreur suivante:

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

Nous avons également essayé tout ce qui précède avec "Azure.storage.blob" au lieu de "Azure.storage"

Nous avons essayé de mettre à jour le package de stockage Azure mais il est à jour (version 0.30.0)

Nous avons également essayé de désinstaller Azure-stockage et d'installer l'ensemble du package Azure, mais nous avons obtenu les mêmes résultats. Nous avons essayé de les installer avec pip et conda, mais les mêmes résultats les deux fois.

Je suis conscient que la sortie suggère que cette version d'Azure.storage n'a pas d'attribut BlobService, mais la documentation indique clairement d'importer à partir de là.

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

15
user3664942

Si vous souhaitez utiliser BlobService, vous pouvez installer le package Azure.storage 0.20.0, il y a BlobService dans cette version. Dans le dernier Azure.storage 0.30.0, BlobSrvice est divisé en BlockBlobService, AppendBlobService, PageBlobService objet, vous pouvez utiliser BlockBlobService remplacer BlobService.

21
Lily_user4045

Il est possible que la bibliothèque ait changé depuis la publication de ce tutoriel, mais ...

Je viens de l'essayer il y a quelques instants, avec succès:

from Azure.storage.blob import BlockBlobService

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

Et j'ai installé le stockage Azure localement via:

pip install Azure-storage

J'ai pu tester cela en téléchargeant un objet à partir du stockage:

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

Remarque: Vous pouvez importer PageBlobService de la même manière, mais vous ne trouverez peut-être pas cela trop précieux, car les objets blob de pages sont principalement destinés aux VHD.

10
David Makogon

J'ai eu le même problème après avoir utilisé pip pour installer le package Azure et, comme le suggère la réponse choisie, cela peut être résolu en installant Azure.storage 0.33.0.

Cependant, si vous utilisez pip, vous devrez peut-être utiliser l'option "--upgrade" pour l'installer correctement (ce fut mon expérience):

pip install Azure-storage --upgrade
3
voyager

J'ai installé la version 1.0.3 (qui inclut Azure.storage version 0.20) sur le serveur Ubuntu 16.04 LTS et pip n'a réinstallé que la version 0.20 d'Azure.storage lorsque j'ai désinstallé et réinstallé le package Azure. C'était selon la page pypi pour le package Azure v. 2.0.0rc6 qui recommande que pour mettre à niveau de 1.0.3 vers la version 2, vous devriez faire

Sudo pip3 uninstall Azure
Sudo pip3 install Azure

pypi/Azure

Au lieu de cela, cela a fonctionné pour moi,

Sudo pip3 uninstall Azure
Sudo pip3 install Azure==2.0.0rc6
2
larslovlie