我这样做了:
sudo pip install azure azure-storage azure-servicebus azure-mgmt azure-servicemanagement-legacy
from azure import *
回溯(最近一次调用最后一次):ImportError中的文件“”,第1行:没有名为azure的模块
from azure.storage import BlobService
回溯(最近一次调用最后一次):ImportError中的文件“”,第1行:没有名为azure.storage的模块
通过cmd sudo pip install
安装的Python包存在于路径/usr/lib/python2.7
,/usr/local/python2.7
等及其子文件夹dist-packages
中。
您可以在Python Interpreter中编写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。这是一种简单的方法。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安装
我有类似的问题。 python2和python3软件包版本之间存在很多混淆,因为没有使用虚拟环境,我也不得不将pip转换为18。
但无论如何,这就是我如何解决有问题的部分。
找到安装包的位置:
pip show azure
输出将在“位置”部分显示包的位置:
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: [email protected]
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)"
您将看到一个pip包位置列表:
['/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' )
这将确保首先检查此包位置。
UPDATE
在早上思考它,从新的角度为我打开了一些东西。我看到,我在我的python文件的开头有#!/usr/bin/python
,它说使用错误的解释器并在错误的地方寻找pip包。