modulenotfounderror no module named requests что делать
Решение проблемы с ошибкой ImportError: No module named requests
Если при запуске программы на Python у вас появляется сообщение об ошибке:
значит у вас отсутствует модуль Requests. Requests не является встроенным модулем, поэтому его нужно загрузить. Официальная документация по модулю: https://pypi.python.org/pypi/requests
OSX/Linux
Если у вас установлен pip, для установки в OSX/Linux используйте команду:
Обратите внимание на версию, чтобы явно указать, для какой версии Python вы делаете установку, используйте pip2 или pip3.
На OSX если у вас установлен easy_install, вы также можете использовать
Windows
В этой операционной системе используйте команду:
Если у вас машина на Windows, где если он был установлен, easy_install может быть найден в вашем каталоге Python*\Scripts. (Помните, Path\easy_install.exe — это пример, моя, к примеру, такая C:\Python32\Scripts\easy_install.exe)
Если у вас Windows машина без установленного easy install, то вы можете получить его здесь: http://www.lfd.uci.edu/
Если вы хотите добавить библиотеку на Windows машине вручную, вы можете загрузить сжатую библиотеку, разархивировать и затем поместить в каталог Lib вашего Python.
Из исходников (универсальный способ)
Любая отсутствующая библиотека, обычно, доступна в исходниках на: https://pypi.python.org/pypi/. Затем:
На mac osx и Windows, после загрузки zip с исходником, распакуйте его и из терминала/cmd запустите
Python: сложности, нюансы, детали.
Вы можете избавить себя от головной боли прочитав статью virtualenv или venv
Установлено несколько версий Python
Итак, Вы установили python, pipe, pipenv, requests и ещё много чего, но вдруг выяснили, что на компьютере уже не одна, а несколько версий python.
Например, у Вас установлены версии 2.7 и 3.5.
Когда Вы запускаете python, то хотите, чтобы работала последняя версия, но, почему-то работает версия 2.7.
Выясним, как разобраться в этой ситуации.
Как видите, в моей Ubuntu Python находится в /usr/bin/python и имеет версию 2.7.18rcl
Третий Python тоже установлен, посмотреть версию и директорию также просто
Резюмируем: второй Python вызывается командой python а третий Python командой python3.
Обычно Python установлен в директорию /usr/bin
python3 is hashed (/usr/bin/python3)
python3 is hashed (/usr/bin/python)
Python 3.8.5 (default, Jul 28 2020, 12:59:40) [GCC 9.3.0] on linux Type «help», «copyright», «credits» or «license» for more information.
>>> import sys
>>> sys.executable
Если у вас уже был третий Python, например 3.8.5, а вы самостоятельно скачали и установили более позднюю версию, например 3.9.1 как в инструкции то у вас будет два разных третьих Python.
Убедиться в этом можно изучив директорию
В такой ситуации вам нужно специально указывать полную версию python3.9 для запуска программ, либо настроить alias
Если ни одна из команд pyhon и python3 не работает, бывает полезно проверить переменную PATH
Как вы можете убедиться моя директория /usr/bin прописана в PATH
Если вам нужно добавить директорию в PATH читайте статью «PATH в Linux» или статью «PATH в Windows»
Важно понимать, что если в каждой из директорий, упомянутых в PATH, будет установлено по какому-то Python выполняться будет тот, который в первой директории.
Если нужно использовать Python из какой-то определённой директории, нужно прописать её путь. В этом случае не обязательно наличие этого пути в PATH
Python 3.8.5 (default, Jul 28 2020, 12:59:40) [GCC 9.3.0] on linux Type «help», «copyright», «credits» or «license» for more information. >>>
>>> говорит о том, что Python в интерактивном режиме.
Выясним куда смотрит pip
/home/andrei/.local/lib/python2.7/site-packages (python 2.7)
Как видите, pip смотрит в директорию python2.7 поэтому всё, что мы до этого устанавливали командой pip install попало к версии 2.7 а версия 3.5 не имеет ни pipenv ни requests и, например, протестировать интерфейсы с её помощью не получится
Command ‘pip’ not found, but there are 18 similar ones.
Посмотрите что выдаст
В моей Ubuntu результат такой
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
Посмотреть куда pip установил пакет можно командой pip show
Проверим, куда установлен модуль requests, который пригодится нам для работы с REST API
Name: requests Version: 2.22.0 Summary: Python HTTP for Humans. Home-page: http://python-requests.org Author: Kenneth Reitz Author-email: me@kennethreitz.org License: Apache 2.0 Location: /usr/lib/python3/dist-packages Requires: Required-by: yandextank, netort, influxdb
alias
Если вы работаете в Linux можете прописать alias python=python3
Установить дополнительную версию Python
Если вы осознанно хотите установить определённую версию Python в добавок к уже существующей выполните
Куда устанавливаются различные версии Python
Просмотрите содержимое /usr/local/bin
Результат на моём ПК показывает, что здесь находится версия 3.5
Версия 2.7 скорее всего здесь /home/andrei/.local/lib/
Результат на моём ПК
Существует несколько способов обойти эту проблему. Сперва рассмотрим использование команды python3.
Как мы только что смогли убедиться команда python3 использует новую версию Python.
sudo apt install python3-pip
Проверим, что он установился в нужную директорию
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
Теперь установим pipenv
pip3 install pipenv
Установить пакет для определённой версии Python
Если у вас несколько версий Python и нужно установить какой-то пакет только для определённой версии, назовём её X.X, воспользуйтесь командой
ModuleNotFoundError: No module named ‘urllib2’
Модуль urllib2 был разделён на urllib.request и urllib.error
import urllib.request
import urllib.error
TabError: inconsistent use of tabs and spaces in indentation
Эта ошибка обычно вызвана тем, что нажатие TAB не эквивалентно трём пробелам.
Можно попробовать заменить все отступы на пробелы строго соблюдая равенство количества пробелов везде где нужно.
ModuleNotFoundError: No module named ‘requests’
Эта ошибка обычно вызвана тем, что модуль requests не установлен, либо установлен, но не для того python, который Вы запустили.
Например, для python2.6 установлен, а для python3 не установлен.
Можно попробовать установить модуль requests. Подробнее про это я писал в статье Тестирование с помощью Python. Потому что столкнулся с этой проблемой впервые именно при тестировании API
Если эта проблема возникла при использовании PyCharm установите requests для Вашего проекта по следующей инструкции
Перейдите в настройки проекта нажав
Выберите раздел Project Interpreter
Нажмите на плюс в правой части экрана
Введите в стоку поиска название нужного модуля. В моём случае это requests
Введите в поиске requests
Должно открыться окно Available Packages
Нажмите кнопку Install Package
Дождитесь окончания установки
Дождитесь окончания установки
SyntaxError: Missing parentheses in call to ‘print’
Эта ошибка обычно появляется когда Вы пробуете в python 3 использовать print без скобок, так как это работало в python 2
В python 3 нужно использовать скобки
TypeError: getsockaddrarg: AF_INET address must be tuple, not str
Эта ошибка обычно появляется когда Вы неправильно ставите кавычку, указывая куда нужно подключиться.
(ip, port), ip обычно в кавычках, порт без
Пример (‘10.6.0.100’, 10000)
Ошибка возникает если взять в кавычки и ip и порт, тогда вместо кортежа передаётся строка, на что и жалуется интерпретатор.
Traceback (most recent call last): File «send.py», line 4, in sock.connect((‘10.6.0.130,9090’)) TypeError: getsockaddrarg: AF_INET address must be tuple, not str
Не выполняется команда virtualenv
Если Вы только что установили virtualenv, но при попытке выполнить
Вы получаете что-то в духе:
virtualenv : The term ‘virtualenv’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1 + virtualenv juha_env +
+ CategoryInfo : ObjectNotFound: (virtualenv:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
Не активируется виртуальное окружение
Сначала разберём случай в чистом virtualenv потом перейдём к virtualenvwrapper-win
1. virtualenv
Вы под Windows и пытаетесь активировать Ваше виртуальное окружение, которое называется, допустим, test_env командой
И ничего не происходит
+ CategoryInfo : SecurityError: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
Нужно зайти в PowerShell в режиме администратора и выполнить
И выполните ещё раз
Если Вы не можете запустить PowerShell в режиме администратора. Например, если Вы пользуетесь терминалом в Visual Studio Code
2. virtualenvwrapper-win
Вы установили virtualenvwrapper-win и создали новое окружение
created virtual environment CPython3.8.2.final.0-32 in 955ms creator CPython3Windows(dest=C:\Users\Andrei\Envs\testEnv, clear=False, global=False) seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=C:\Users\Andrei\AppData\Local\pypa\virtualenv\seed-app-data\v1.0.1) activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
Его видно в списке окружений
И workon его видит
Чтобы активировать его вводим
И ничего не происходит. Потому что virtalenvwrapper-win не работает с PowerShell.
Придётся использовать обычный command prompt или переходить в подсистему Linux
NameError: name ‘psutil’ is not defined
NameError: name ‘psutil’ is not defined
Подобные ошибки возникают если ещё не установили какую-то библиотеку, но уже попробовали ей воспользоваться
TypeError: unsupported operand type(s) for +: ‘range’ and ‘range’
Эта ошибка говорит о том, что вы запускаете код написанный на Python2 с помощью Python3
Установите последнюю версию Python2 по инструкции и запустите код с помощью второго Python
ModuleNotFoundError: No module named ‘telebot’ #13
Comments
drno-reg commented Mar 28, 2018
Лучше не стало после установки пакета
pip install pytelegrambotapi
c:\python36\scripts\pip install pytelegrambotapi
Requirement already satisfied: pytelegrambotapi in c:\python36\lib\site-packages
Requirement already satisfied: requests in c:\python36\lib\site-packages (from pytelegrambotapi)
Requirement already satisfied: six in c:\python36\lib\site-packages (from pytelegrambotapi)
Requirement already satisfied: urllib3 =1.21.1 in c:\python36\lib\site-packages (from requests->pytelegrambotapi)
Requirement already satisfied: certifi>=2017.4.17 in c:\python36\lib\site-packages (from requests->pytelegrambotapi)
Requirement already satisfied: idna =2.5 in c:\python36\lib\site-packages (from requests->pytelegrambotapi)
Requirement already satisfied: chardet =3.0.2 in c:\python36\lib\site-packages (from requests->pytelegrambotapi)
The text was updated successfully, but these errors were encountered:
MasterGroosha commented Mar 29, 2018
Во-первых, не нужно открывать новые issue, если речь идёт о старых. В закрытые issue можно комментировать.
Во-вторых, Вы бы всё-таки удосужились прочитать то, что скинули. Питон пишет, что библиотека уже установлена и этот текст НЕ является сообщением об ошибке.
drno-reg commented Mar 29, 2018
Думалось не придется так детализировать.
НО придется
import telebot
import config
@bot.message_handler(content_types=[«text»])
def repeat_all_messages(message): # Название функции не играет никакой роли, важно не повторяться
bot.send_message(message.chat.id, message.text)
if name == «main«:
bot.polling(none_stop=True)
установил пакет pip install pytelegrambotapi
он установился успешно
c:\python36\scripts\pip install pytelegrambotapi
Requirement already satisfied: pytelegrambotapi in c:\python36\lib\site-packages
Requirement already satisfied: requests in c:\python36\lib\site-packages (from pytelegrambotapi)
Requirement already satisfied: six in c:\python36\lib\site-packages (from pytelegrambotapi)
Requirement already satisfied: urllib3 =1.21.1 in c:\python36\lib\site-packages (from requests->pytelegrambotapi)
Requirement already satisfied: certifi>=2017.4.17 in c:\python36\lib\site-packages (from requests->pytelegrambotapi)
Requirement already satisfied: idna =2.5 in c:\python36\lib\site-packages (from requests->pytelegrambotapi)
Requirement already satisfied: chardet =3.0.2 in c:\python36\lib\site-packages (from requests->pytelegrambotapi)
запускаю код возвращается ошибка:
Traceback (most recent call last):
File «C:/Server/Repositories/um_open/templates/Test/TelegramBot1.py», line 3, in
import telebot
ModuleNotFoundError: No module named ‘telebot’
Как решить эту проблему?
MasterGroosha commented Mar 29, 2018
Вопрос на засыпку: какой интерпретатор Python выполняет Ваш код?
drno-reg commented Mar 29, 2018
Python 3.6.5rc1 (v3.6.5rc1:f03c5148cf, Mar 14 2018, 03:12:11) [MSC v.1913 64 bit (AMD64)] on win32
MasterGroosha commented Mar 29, 2018
У меня есть большое подозрение, что либо не тот интерпретатор используется, либо остались хвосты от telebot. Проще перезагрузиться и попробовать ещё раз сделать импорт, иногда помогает.
drno-reg commented Mar 30, 2018
до прошлого воскресенья у меня было 3 интерпретатора: 2.7, 3.6 и 3.7. Сейчас точно один. Представлю доказательства удаления и новой инсталляции
drno-reg commented Mar 30, 2018
в общем не помогло (((
C:\Server\Repositories\um_open\venv\Scripts\python.exe C:/Server/Repositories/um_open/templates/Test/TelegramBot1.py
Traceback (most recent call last):
File «C:/Server/Repositories/um_open/templates/Test/TelegramBot1.py», line 3, in
import telebot
ModuleNotFoundError: No module named ‘telebot’
MasterGroosha commented Mar 30, 2018
Стоп. Вы запускаете скрипт в виртуальном окружении (venv), а библиотеку ставите в глобальное. Либо не используйте venv, либо ставьте библиотеку внутри него
drno-reg commented Mar 31, 2018
заработало, досадная ошибка действительно, благодарю за внимание к моим вопросам
Podvom commented Feb 14, 2019
jenjajenjaBot commented Nov 22, 2019
Стоп. Вы запускаете скрипт в виртуальном окружении (venv), а библиотеку ставите в глобальное. Либо не используйте venv, либо ставьте библиотеку внутри него
как ставить библиотеку внурти его?
MasterGroosha commented Nov 22, 2019
jenjajenjaBot commented Nov 28, 2019
Как исправить ошибку ModuleNotFoundError: no module named pyowm Python 3.7.4?
Всем привет, помогите начинающему кодеру
Windows 10
Устанавливаю модуль по инструкции
pip install pyowm
Код в файле программы:
Средний 12 комментариев
Найдите файл-линк на питон в вашем виртуальном окружении
И запускайте
Ivan Yakushenko, я так и делал. С pyowm разобрался, заработало. Но с pip install pyTelegramBotAPI такая же проблема, не устанавливает
equirement already satisfied: pyTelegramBotAPI in c:\users\ave\appdata\local\programs\python\python37-32\lib\site-packages (3.6.6)
Django ModuleNotFoundError: No module named ‘blog.urls’
Подскажите где ошибка, почему не могу запустить?
2 ответа 2
В файле urls.py (который НЕ blog/urls.py) в строке path(», include(‘blog.urls’)) вы пытаетесь сделать переход на домашнюю страницу сайта, я рекомендую вам попробовать обойтись без include(), т.к. это весьма плохая практика, которая приводит к некорректной работе приложения. Просто сделайте так: path(‘здесь можете либо оставить пустые кавычки, либо вписать свой url’, ваша_функция) импортируйте вьюху из этой же директории и сделайте роутинг через неё.
Проверь есть ли у тебя файл __init__.py в папке blog. Настоятельно советую следовать оф. документации при первом знакомстве с django: https://docs.djangoproject.com/en/2.2/intro/tutorial01/
Всё ещё ищете ответ? Посмотрите другие вопросы с метками python python-3.x django или задайте свой вопрос.
Похожие
Подписаться на ленту
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.12.16.41042
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.