Python ImportError:使用Azure SDK时无法导入名称会话
我正在使用Azure SDK运行代码 首先,我通过Python ImportError:使用Azure SDK时无法导入名称会话,python,python-2.7,azure,importerror,Python,Python 2.7,Azure,Importerror,我正在使用Azure SDK运行代码 首先,我通过pip安装azure下载sdk。然后我编写了以下python代码 import requests import os # make sure you configure these three variables correctly before you try to run the code AZURE_ENDPOINT_URL='https://login.microsoftonline.com/xxxxxx-xx-15571582280
pip安装azure
下载sdk。然后我编写了以下python代码
import requests
import os
# make sure you configure these three variables correctly before you try to run the code
AZURE_ENDPOINT_URL='https://login.microsoftonline.com/xxxxxx-xx-155715822801/oauth2/token'
AZURE_APP_ID='6dxxxxx8-c4af-4522xxx6-5a8f8155a616'
AZURE_APP_SECRET='password'
def get_token_from_client_credentials(endpoint, client_id, client_secret):
payload = {
'grant_type': 'client_credentials',
'client_id': client_id,
'client_secret': client_secret,
'resource': 'https://management.core.windows.net/',
}
response = requests.post(endpoint, data=payload).json()
return response['access_token']
# test
if __name__ == '__main__':
auth_token = get_token_from_client_credentials(endpoint=AZURE_ENDPOINT_URL,
client_id=AZURE_APP_ID,
client_secret=AZURE_APP_SECRET)
print auth_token
运行代码后,我得到如下消息
File "D:\Python27\lib\site-packages\requests\__init__.py", line 58, in <module>
from . import utils
File "D:\Python27\lib\site-packages\requests\utils.py", line 26, in <module>
from .compat import parse_http_list as _parse_list_header
File "D:\Python27\lib\site-packages\requests\compat.py", line 39, in <module>
import cookielib
File "D:\Python27\lib\cookielib.py", line 32, in <module>
import re, urlparse, copy, time, urllib
File "C:\Users\yulei\Desktop\copy.py", line 8, in <module>
import azure.mgmt.compute
File "D:\Python27\lib\site-packages\azure\mgmt\compute\__init__.py", line 19, in <module>
from .computemanagement import *
File "D:\Python27\lib\site-packages\azure\mgmt\compute\computemanagement.py", line 23, in <module>
from requests import Session, Request
ImportError: cannot import name Session
文件“D:\Python27\lib\site packages\requests\\uuuu init\uuuu.py”,第58行,在
从…起导入UTIL
文件“D:\Python27\lib\site packages\requests\utils.py”,第26行,在
from.compat导入解析http列表作为解析列表头
文件“D:\Python27\lib\site packages\requests\compat.py”,第39行,在
进口cookielib
文件“D:\Python27\lib\cookielib.py”,第32行,在
导入re、urlparse、复制、时间、urllib
文件“C:\Users\yulei\Desktop\copy.py”,第8行,在
导入azure.mgmt.compute
文件“D:\Python27\lib\site packages\azure\mgmt\compute\\uuuuu init\uuuuuuuuu.py”,第19行,在
从.computemanagement导入*
文件“D:\Python27\lib\site packages\azure\mgmt\compute\computemanagement.py”,第23行,在
从请求导入会话,请求
ImportError:无法导入名称会话
问题似乎是由与python文件同名的包请求引起的,或者是当前目录下的目录includes file\uuu init\uuu.py
因为Python按顺序从路径sys.path
导入包,第一个路径是'
(当前目录)
因此,如果您创建一个python文件requests.py
或创建一个dirrequests
包含一个文件\uuuu init\uuuuu.py
,python首先将其作为包requests
导入。然后,从请求导入会话运行代码将导致错误导入错误:无法导入名称会话
请按顺序检查路径sys.path
中的当前目录或目录,并删除名为requests.py
的文件或名为requests的目录,我最近使用sudo升级了我的请求
库(sudo pip install--upgrade requests
),然后我很惊讶没有sudo我不能直接调用代码
由于权限问题,它找不到刚升级的文件 谢谢!它是由同一目录中名为copy.py
的文件引起的。在我更改当前目录后,它工作了!