Импорт установленного пакета из сценария повышает значение «AttributeError: модуль не имеет атрибута» или «ImportError: невозможно импортировать имя»,

У меня есть сценарий с именем requests.py который импортирует пакет запросов. Сценарий либо не может получить доступ к атрибутам из пакета, либо не может их импортировать. Почему это не работает и как я могу это исправить?

Следующий код вызывает AttributeError .

  • Как отключить "sys.excepthook отсутствует" ошибка?
  • Выполнение `Exception .__ str __ ()` в Python
  • почему мы должны использовать Exception в качестве суперкласса, почему не BaseException
  • threading игнорирует исключение KeyboardInterrupt
  • Python: Как игнорировать исключение и продолжить?
  • Python запрашивает обработку исключений
  •  import requests res = requests.get('http://www.google.ca') print(res) 
     Traceback (most recent call last): File "/Users/me/dev/rough/requests.py", line 1, in <module> import requests File "/Users/me/dev/rough/requests.py", line 3, in <module> requests.get('http://www.google.ca') AttributeError: module 'requests' has no attribute 'get' 

    Следующий код вызывает ImportError .

     from requests import get res = get('http://www.google.ca') print(res) 
     Traceback (most recent call last): File "requests.py", line 1, in <module> from requests import get File "/Users/me/dev/rough/requests.py", line 1, in <module> from requests import get ImportError: cannot import name 'get' 

    Следующий код вызывает ImportError .

     from requests.auth import AuthBase class PizzaAuth(AuthBase): """Attaches HTTP Pizza Authentication to the given Request object.""" def __init__(self, username): # setup any auth-related data here self.username = username def __call__(self, r): # modify and return the request r.headers['X-Pizza'] = self.username return r 
     Traceback (most recent call last): File "requests.py", line 1, in <module> from requests.auth import AuthBase File "/Users/me/dev/rough/requests.py", line 1, in <module> from requests.auth import AuthBase ImportError: No module named 'requests.auth'; 'requests' is not a package 

  • Инициализация матрицы numpy для чего-то другого, кроме нуля или одного
  • Python: существует ли C-подобный цикл?
  • django auth Пользовательское поле для усечения электронной почты
  • изменить pandas 0.13.0 "print dataframe" для печати данных, как в предыдущих версиях
  • Как расширить массив на месте в Numpy?
  • Как сохранить словарь в поле модели базы данных Django
  • One Solution collect form web for “Импорт установленного пакета из сценария повышает значение «AttributeError: модуль не имеет атрибута» или «ImportError: невозможно импортировать имя»,”

    Это происходит из-за того, что ваш локальный модуль с именем request.py requests модуль установленных requests вы пытаетесь использовать. Текущий каталог добавляется к sys.path , поэтому локальное имя имеет приоритет над установленным именем.

    Дополнительный совет по отладке, когда он появляется, – это внимательно изучить Traceback и понять, что имя вашего скрипта соответствует модулю, который вы пытаетесь импортировать:

    Обратите внимание на имя, которое вы использовали в своем скрипте:

     File "/Users/me/dev/rough/requests.py", line 1, in <module> 

    Модуль, который вы пытаетесь импортировать: requests

    Переименуйте свой модуль в другое, чтобы избежать столкновения имен.

    Python может генерировать файл __pycache__ рядом с вашим файлом __pycache__ (в каталоге __pycache__ в Python 3). Удалите это также после переименования, поскольку интерпретатор все равно будет ссылаться на этот файл, повторно создавая ошибку. Однако файл pyc в __pycache__ не должен влиять на ваш код, если файл py был удален.

    В этом примере переименование файла на my_requests.py , удаление my_requests.py и повторное выполнение успешно my_requests.py печать <Response [200]> .

    Python - лучший язык программирования в мире.