ModuleNotFoundError: нет модуля с именем «requests.auth»

Вскоре мой сценарий, который работал нормально, перестал работать, выдав ошибку.

ModuleNotFoundError: нет модуля с именем «requests.auth».

Я не помню, чтобы менял среду Conda, которую использует сценарий.

В один день все работало нормально, а на следующий перестало. Я не знаю, какой параметр изменился.

Я попробовал несколько путей, чтобы найти решение, но мне это не удалось. Среди них были:

  • настройка новой, очистка среды Conda, обязательно установленные запросы

  • очистка кеша кода Visual Studio

  • несколько перезагрузок

Самое странное: когда я запускаю следующие команды в интерактивном сеансе оболочки, это работает, и я получаю «Ответ [200]».

Когда я запускаю его в файле Jupyter Notebook или .py в коде Visual Studio, я получаю вышеупомянутую ошибку ModuleNotFoundError. То же самое касается выполнения файла из командной строки.

Все вышеперечисленные тесты проводились в той же среде Conda, в которой обязательно установлены Requests.

Также: он работает в виртуальной среде, к которой у меня есть доступ, с которой синхронизируются мои настройки кода Visual Studio. Так может быть, не код Visual Studio, а что-то локальное для моей машины?

import requests
from requests.auth import HTTPBasicAuth

basic = HTTPBasicAuth('user', 'pass')

requests.get('https://httpbin.org/basic-auth/user/pass', auth=basic)

Некоторые характеристики:

  • ОС: Windows 10

  • Питон: 3.12.2

  • Запросы: 2.31.0

  • Конда: 24.1.2

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
369
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Проверьте свой интерпретатор Python с помощью ярлыков Ctrl + Shift + P и введите «Python: Выберите интерпретатор», чтобы выбрать правильный интерпретатор Python.

Если не помогло, попробуйте команду pip install requests.

Я абсолютно уверен, что попробовал это с правильным переводчиком. Я даже создал новую среду. У меня сложилось впечатление, что мне не следует смешивать установку conda и pip в одной виртуальной среде. Я могу попробовать это наверняка, однако мои тесты в интерактивном сеансе, похоже, показывают, что запросы установлены нормально. Кроме того, этот же сценарий ранее работал в той же среде.

wind5piel 14.03.2024 08:34
Ответ принят как подходящий

В конечном итоге решение проблемы оказалось неожиданно простым и возникло из-за фундаментальной ошибки пользователя.

Проблема возникла из-за подкаталога с именем «запросы» в папке проекта. Следовательно, при попытке импортировать библиотеку с помощью import requests вместо предполагаемой библиотеки был импортирован подкаталог. Отсутствие необходимых модулей привело к появлению MouleNotFoundError.

Решение было столь же простым: переименование проблемной папки мгновенно восстанавливало функциональность процесса импорта и, следовательно, скриптов.

Что касается моих тестов, поразмыслив, становится очевидным, что импорт Request.auth работал правильно в настройках за пределами затронутого каталога проекта, например, в обычном интерактивном сеансе в командной строке или на удаленной виртуальной машине. Однако импорт не удался, когда в пределах каталога проекта сценарий наблюдался в упомянутых файлах .py и .ipynb.

Примечание: никогда не называйте что-то вроде существующей библиотеки.

Следующее решение помогло мне отследить мою проблему: https://stackoverflow.com/a/36522445/21402820

Это ответ только на ссылку на другой вопрос SO. Это должен быть комментарий, или вопрос закрыт как дубликат.

Trenton McKinney 14.03.2024 19:35

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

wind5piel 17.03.2024 14:30

Надеюсь, новая расширенная версия моего ответа лучше соответствует требованиям.

wind5piel 22.03.2024 09:30

Другие вопросы по теме