【问题标题】:Unable to use azure SDK in Python无法在 Python 中使用 Azure SDK
【发布时间】:2016-03-16 18:56:44
【问题描述】:

我这样做了:

sudo pip install azure azure-storage azure-servicebus azure-mgmt azure-servicemanagement-legacy

from azure import * 

Traceback(最近一次调用最后一次):文件“”,第 1 行,in ImportError:没有名为 azure 的模块

from azure.storage import BlobService

Traceback(最近一次调用最后一次):文件“”,第 1 行,in ImportError:没有名为 azure.storage 的模块

【问题讨论】:

  • 您使用的是哪个平台和python版本?
  • 我在 Ubuntu 14 和 OSX 上都试过了

标签: python azure


【解决方案1】:

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

您可以在 Python 解释器中编码 import sysprint sys.path 以显示当前 Python 环境的完整路径列表。

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

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

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

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

  1. 通过python代码中的sys.path.append('<package path>')方法将包路径动态添加到sys.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。这是一种简单的方法。

【讨论】:

  • 这会起作用 - 但不是最好的方法 - 在这种情况下,OP 正在尝试使用已弃用的元包
【解决方案2】:

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/

【讨论】:

  • ImportError: 无法导入名称 BlobService
  • 你的 PIP 安装完成没有错误,我刚刚测试过它真的很好,或者你可以使用 virtualenv 创建一个 diff 文件夹并在其中进行 pip 安装 - 新鲜
【解决方案3】:

我有非常相似的问题。 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)"

您将看到 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' )

这将确保首先检查此包位置。

更新

早上想起来,事情对我来说是一个新的视角。我看到,我的 python 文件开头有#!/usr/bin/python,它说使用错误的解释器并在错误的位置查找 pip 包。

【讨论】:

    【解决方案4】:

    Azure 元包已弃用 并且不再维护 azure-storage

    请使用 azure-storage-blob >= 12.0

    pip install azure-storage-blob
    
    from azure.storage.blob import BlobServiceClient
    

    PS:我为 azure 编写 SDK

    【讨论】:

      猜你喜欢
      • 2021-04-20
      • 2021-10-26
      • 1970-01-01
      • 1970-01-01
      • 2015-06-10
      • 1970-01-01
      • 1970-01-01
      • 2018-09-21
      • 2019-11-25
      相关资源
      最近更新 更多