2016-01-14 2 views
0

Я запускаю код с использованием Azure SDK.ImportError: невозможно импортировать имя Session, при использовании Azure SDK

Во-первых, я загружаю sdk по pip install azure. Затем я пишу для запуска следующего кода 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 

ответ

0

кажется, что проблема была вызвана пакетом requests как же имя, что и файл питон или каталог включает в себя файл __init__.py в текущем каталоге.

Поскольку Python импортирует пакеты в порядке от путей sys.path, а первый путь - '' (текущий каталог).

Так что, если вы создаете питона файл requests.py или создать реж requests включить файл __init__.py, Python, во-первых импортирует его в качестве пакета requests. Затем запуск кода from requests import Session вызовет ошибку ImportError: cannot import name Session.

Пожалуйста, проверьте текущий каталог или директории на путях sys.path и удалите файл с именем requests.py или каталог с именем requests.

+0

Спасибо! Это вызвано файлом 'copy.py' в том же каталоге. После того, как я изменил текущий каталог, он работает! – jack

Смежные вопросы