Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ImportError:使用Azure SDK时无法导入名称会话_Python_Python 2.7_Azure_Importerror - Fatal编程技术网

Python ImportError:使用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

我正在使用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-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
或创建一个dir
requests
包含一个文件
\uuuu init\uuuuu.py
,python首先将其作为包
requests
导入。然后,从请求导入会话运行代码
将导致错误
导入错误:无法导入名称会话


请按顺序检查路径
sys.path
中的当前目录或目录,并删除名为
requests.py
的文件或名为
requests

的目录,我最近使用sudo升级了我的
请求
库(
sudo pip install--upgrade requests
),然后我很惊讶没有sudo我不能直接调用代码


由于权限问题,它找不到刚升级的文件

谢谢!它是由同一目录中名为
copy.py
的文件引起的。在我更改当前目录后,它工作了!