我按照以下说明将Azure设置为我的后端服务: http://django-storages.readthedocs.io/en/latest/backends/azure.html
还根据本文档添加了其他包: https://docs.microsoft.com/en-us/azure/storage/blobs/storage-python-how-to-use-blob-storage
获取此错误: 回溯(最近一次呼叫时间):
File "/usr/local/lib/python3.6/site-packages/storages/backends/azure_storage.py", line 23, in <module>
from azure.storage.blob.blobservice import BlobService
ModuleNotFoundError: No module named 'azure.storage.blob.blobservice'
。。。。
File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 978, in _gcd_import
File "<frozen importlib._bootstrap>", line 961, in _find_and_load
File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
File "/usr/local/lib/python3.6/site-packages/storages/backends/azure_storage.py", line 26, in <module>
from azure.storage import BlobService
ImportError: cannot import name 'BlobService'
[12/Oct/2017 01:38:00] "POST /upload HTTP/1.1" 500 18034
我的pip3冻结看起来是这样的:
(venv) Mikes-MacBook:drhazelapp mikebz$ pip3 freeze | grep azure
azure==2.0.0
azure-batch==3.0.0
azure-common==1.1.8
azure-datalake-store==0.0.17
azure-graphrbac==0.30.0
azure-keyvault==0.3.7
azure-mgmt==1.0.0
azure-mgmt-authorization==0.30.0
azure-mgmt-batch==4.0.0
azure-mgmt-cdn==0.30.3
azure-mgmt-cognitiveservices==1.0.0
azure-mgmt-compute==1.0.0
azure-mgmt-containerregistry==0.2.1
azure-mgmt-datalake-analytics==0.1.6
azure-mgmt-datalake-nspkg==2.0.0
azure-mgmt-datalake-store==0.1.6
azure-mgmt-devtestlabs==2.0.0
azure-mgmt-dns==1.0.1
azure-mgmt-documentdb==0.1.3
azure-mgmt-iothub==0.2.2
azure-mgmt-keyvault==0.31.0
azure-mgmt-logic==2.1.0
azure-mgmt-monitor==0.2.1
azure-mgmt-network==1.0.0
azure-mgmt-nspkg==2.0.0
azure-mgmt-rdbms==0.1.0
azure-mgmt-redis==4.1.0
azure-mgmt-resource==1.1.0
azure-mgmt-scheduler==1.1.3
azure-mgmt-sql==0.5.3
azure-mgmt-storage==1.0.0
azure-mgmt-trafficmanager==0.30.0
azure-mgmt-web==0.32.0
azure-nspkg==2.0.0
azure-servicebus==0.21.1
azure-servicefabric==5.6.130
azure-servicemanagement-legacy==0.20.6
azure-storage==0.34.3
azure-storage-blob==0.37.0
azure-storage-common==0.37.0
azure-storage-file==0.37.0
azure-storage-nspkg==2.0.0
msrestazure==0.4.14
我不得不降级到
azure-storage-0.20.0
这解决了问题,新版本找不到BlobService
类。在合并之前,当前的azure存储库无法工作。所以为了让它工作,我必须安装一个Django存储的私有分叉:
我叉子:https://github.com/guydou/django-storages/tree/upgrade_azure 指着我自己的回购协议:
然后安装blob库和azure SDK:
在那之后,配置似乎开始工作了。azure的最终需求文档如下: (venv)Mikes MacBook:drhazelapp mikebz$pip3冻结
当您
pip install azure
时,您安装了azure-storage 0.34.3
(教程1)。当您按照第二个教程进行操作时,您安装了azure-storage-blob 0.37.0
。这就是您遇到问题的地方,0.37.0中的名称空间发生了巨大的突破性变化:https://github.com/Azure/azure-storage-python/blob/master/BreakingChanges.md#version-0370
请参阅更改日志中的
azure-storage
<;=0.36与azure-storage-blob
>;=0.37不兼容。你悄悄地用0.37.0版本替换了一些0.34.3的代码文件。在你的第二次测试中,你说你做到了:
软件包仍然不兼容,但您是按相反的顺序执行的,这次您用0.34.3压缩了0.37.0版本。这就是它工作的原因。
TLDR,有人需要更新django存储以支持azure存储blob>;=0.37.0。同时,坚持
azure-storage
<;=0.36,根本不安装azure-storage-blob
。相关问题 更多 >
编程相关推荐