无法在Python中使用azure SDK

问题描述 投票:2回答:3

我这样做了:

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的模块

python azure
3个回答
3
投票

通过cmd sudo pip install安装的Python包存在于路径/usr/lib/python2.7/usr/local/python2.7等及其子文件夹dist-packages中。

您可以在Python Interpreter中编写import sysprint sys.path代码,以显示当前python环境的完整路径列表。

如果您成功安装了一些软件包,如azureazure-storage,您可以找到这些文件与python库路径中的软件包相关。

但是,当您运行代码in Import Error: No module named <package-name>import <package-name>时,您得到错误from <package-name> import <class or object name>。有两个场景会导致问题正常。

  1. 包未成功安装。
  2. 库路径包括python中的Python系统环境路径sys.path或环境变量中的PYTHONHOME中不存在的包。

所以我认为你可以尝试通过以下三种方式解决问题。

  1. 通过python代码中的sys.path方法将包路径动态添加到sys.path.append('<package path>')中。
  2. 检查环境变量PYTHONHOME是否设置。如果设置PYTHONHOME,python会将基于PYTHONHOME的包路径添加到sys.path中。
  3. 如果您的python环境遇到一些无法恢复的未知错误,您可以尝试在Ubuntu上通过命令sudo apt-get remove python python-pipsudo apt-get updatesudo apt-get install python python-pip重新安装Python。这是一种简单的方法。

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安装

http://docs.python-guide.org/en/latest/dev/virtualenvs/


0
投票

我有类似的问题。 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包。

© www.soinside.com 2019 - 2024. All rights reserved.