get_blob_to_path - Cómo importar Azure BlobService en python?
django azure blob storage (4)
Podemos importar azure.storage, pero no acceder al atributo BlobService
La documentación dice que use la siguiente declaración de importación:
from azure.storage import BlobService
Pero ese es el siguiente error:
ImportError: cannot import name BlobService
Intentamos lo siguiente:
import azure.storage
...
foo = azure.storage.BlobService(...)
Pero eso recibió el siguiente error:
AttributeError: ‘module’ object has no attribute ‘BlobService’
También probamos todo lo anterior con "azure.storage.blob" en lugar de "azure.storage"
Intentamos actualizar el paquete de almacenamiento azul, pero está actualizado (versión 0.30.0)
También intentamos desinstalar Azure-storage e instalar todo el paquete azul, pero obtuvimos los mismos resultados. Intentamos instalarlos tanto con pip como conda, pero los mismos resultados en ambas ocasiones.
Soy consciente de que el resultado sugiere que esta versión de azure.storage no tiene ningún atributo BlobService, pero la documentación indica claramente que se debe importar desde allí.
Es posible que la biblioteca haya cambiado desde que se publicó el tutorial, pero ...
Acabo de probar esto hace unos momentos, con éxito:
from azure.storage.blob import BlockBlobService
blob_service = BlockBlobService(account_name="...",account_key="...")
E instalé el almacenamiento de Azure localmente a través de:
pip install azure-storage
Pude probar esto al descargar un objeto del almacenamiento:
blob_service.get_blob_to_path("containername","blobname","localfilename")
Nota: Puede importar PageBlobService
de manera similar, pero es posible que no lo encuentre demasiado valioso, ya que los blobs de página son principalmente para vhd.
si, si desea usar BlobService
, puede instalar el paquete azure.storage 0.20.0
, hay BlobService
en esa versión. En la última azure.storage 0.30.0
, BlobSrvice se divide en BlockBlobService, AppendBlobService, PageBlobService
Objeto BlockBlobService, AppendBlobService, PageBlobService
, puede usar BlockBlobService
reemplazar BlobService
. Hay muchos artículos que necesitan actualizar el contenido.
Tuve el mismo problema después de usar pip para instalar el paquete azul y, como sugiere la respuesta elegida, esto se puede solucionar instalando azure.storage 0.33.0.
Sin embargo, si está utilizando pip, es posible que necesite usar la opción "--actualizar" para que se instale correctamente (esta fue mi experiencia):
pip install azure-storage --upgrade
Tenía la versión 1.0.3 instalada (que incluye azure.storage versión 0.20) en el servidor Ubuntu 16.04 LTS y pip solo reinstalé la versión 0.20 de azure.storage cuando desinstalé y volví a instalar el paquete azure. Esto fue de acuerdo con la página pypi para el paquete azure v. 2.0.0rc6 que recomienda que para actualizar de 1.0.3 a la versión 2 debe hacer
sudo pip3 uninstall azure
sudo pip3 install azure
En cambio, esto funcionó para mí,
sudo pip3 uninstall azure
sudo pip3 install azure==2.0.0rc6