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à.
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
.
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.
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
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
Au lieu de cela, cela a fonctionné pour moi,
Sudo pip3 uninstall Azure
Sudo pip3 install Azure==2.0.0rc6