我这样做了:
sudo pip install azure azure-storage azure-servicebus azure-mgmt azure-servicemanagement-legacy
from azure import *
回溯(最近一次呼叫最后一次):文件"",第1行,in ImportError:没有名为azure的模块
from azure.storage import BlobService
回溯(最近一次呼叫最后一次):文件"",第1行,in ImportError:没有名为azure.storage的模块
答案 0 :(得分:3)
通过cmd sudo pip install
安装的Python包存在于路径/usr/lib/python2.7
,/usr/local/python2.7
等及其子文件夹dist-packages
。
您可以在Python解释器中编写import sys
和print sys.path
代码,以显示当前python环境的已完成路径列表。
如果您成功安装了一些软件包,例如azure
& azure-storage
,您可以找到这些文件与python库路径中的包有关。
但是,运行代码in Import Error: No module named <package-name>
或import <package-name>
时出现错误from <package-name> import <class or object name>
。有两个场景会导致问题正常发生。
sys.path
或环境变量中的PYTHONHOME
中不存在的包。所以我认为你可以尝试通过以下三种方式解决问题。
sys.path
方法将包路径动态添加到sys.path.append('<package path>')
。PYTHONHOME
是否设置。如果设置为PYTHONHOME
,python会根据PYTHONHOME
将包路径添加到sys.path
。sudo apt-get remove python python-pip
,sudo apt-get update
,sudo apt-get install python python-pip
重新安装Python。这是一种简单的方式。答案 1 :(得分:0)
BlobService属于azure.storage.blob而不是azure.storage
它应该是
from azure.storage.blob import BlobService
链接 - https://azure.microsoft.com/en-us/documentation/articles/storage-python-how-to-use-blob-storage/
如果它仍然不适合您,您可能希望使用virtualEnv并在virtualenv中再次执行pip安装
答案 2 :(得分:0)
我有非常相似的问题。 python2和python3软件包版本之间存在很多混乱,因为没有使用虚拟环境,我还必须将pip降级为18。
但是无论如何,这就是我解决有问题的零件的方式。
找到该软件包的安装位置:
pip show azure
输出将在 Location 部分中显示软件包的位置:
Name: azure
Version: 4.0.0
Summary: Microsoft Azure Client Libraries for Python
Home-page: https://github.com/Azure/azure-sdk-for-python
Author: Microsoft Corporation
Author-email: azpysdkhelp@microsoft.com
License: MIT License
Location: /usr/local/lib/python3.6/dist-packages
Requires: azure-servicefabric, azure-cosmosdb-table, azure-datalake-store, azure-loganalytics, azure-eventgrid, azure-servicemanagement-legacy, azure-servicebus, azure-graphrbac, azure-storage-blob, azure-mgmt, azure-storage-file, azure-batch, azure-applicationinsights, azure-keyvault, azure-storage-queue
Required-by:
如果您这样做:
python -c "import sys;print(sys.path)"
您将看到一个点子包装位置列表:
['/app', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']
在我的python文件的开头,我添加了:
sys.path.insert( 0, '/usr/local/lib/python3.6/dist-packages' )
这将确保首先检查此包裹的位置。
更新
考虑到早晨,事情为我带来了新的视角。我看到,我的python文件开头有#!/usr/bin/python
,该文件说使用错误的解释器并在错误的位置查找pip包。