#python
#python
Вопрос:
Когда я пытаюсь использовать
import praw
Я получаю следующую ошибку:
ModuleNotFoundError: No module named 'praw'
Я заранее установил praw в командной строке, используя pip install praw
, поэтому я не уверен, почему он не работает. Я новичок в программировании, поэтому буду признателен за любую информацию.
Комментарии:
1. Возможно, вы выполняете код в среде, отличной от той, в которую вы устанавливаете. Как именно вы устанавливаете модули и запускаете скрипты?
2. У меня есть код в текстовом файле. Я устанавливаю модули в командной строке, используя Pip. Затем в текстовый файл я импортирую модули, и именно здесь все идет не так.
3. Какую команду вы используете для выполнения скрипта? Вы находитесь в виртуальной среде? Каков результат
pip -V
? Каков выводwhich pip
,which python
иwhich python3
?4. pip -V выдает мне:
pip 21.0 from C:UsersCarterAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packagespip (python 3.9)
. Все три команды which дают мне:'which' is not recognized as an internal or external command, operable program or batch file.
5. Похоже, эта проблема, с которой я столкнулся, возникает с несколькими разными модулями, а не только с praw.
Ответ №1:
Это зависит от версии python (например, Python3.9) в вашей среде.
Попробуйте pip3
установить свои пакеты. Я бы открыл терминал и сделал следующее:
$ pip3 install praw
$ python3 myscript.py
Комментарии:
1. @Carter Michaelis Вы нашли способ установить praw с помощью pip?
Ответ №2:
У меня была такая же проблема, и я искал несколько способов ее решения.
Для меня решение было таким же простым, как изменение имени файла pyhton на что-то вроде «test» вместо «praw».
Да, я назвал свой файл «praw.py » и импортировал креветки, которые были причиной ошибки.
Ответ №3:
Вполне возможно, что у вас возникла проблема с несколькими установками python в вашей системе. Я предлагаю очистить вашу среду и использовать виртуальную среду.
Вы должны выполнить следующее, чтобы создать чистую виртуальную среду в вашем рабочем каталоге:
python -m venv venv
Это создаст виртуальную среду, которая должна быть свободна от общесистемных пакетов, и представляет собой приятную и блестящую чистую установку python.
Теперь вы захотите активировать его. Вы сказали, что работаете в Windows, поэтому запустите venvScriptsactivate.bat
, если вы используете CMD или venvScriptsActivate.ps1
PowerShell.
Теперь попробуйте переустановить praw
с python -m pip install praw
помощью . Теперь у вас всегда должен быть доступ praw
, если вы находитесь в этой виртуальной среде.
Если вам интересно прочитать документацию по VirtualEnvs, вот она. Вам также может быть интересно ознакомиться с Руководством автостопщика по Python, особенно с главой о виртуальных средах и управлении пакетами. (Обратите внимание, что в этой последней главе pipenv
вместо virtualenv.
)
Комментарии:
1. Действительно кажется, что это сработает … но я все равно получаю
ModuleNotFoundError: No module named 'praw'
… Должно быть, я делаю что-то не так: (2. И когда я переустанавливаю praw в этой виртуальной среде, это также дает мне следующее:
WARNING: You are using pip version 20.2.3; however, version 21.0.1 is available. You should consider upgrading via the 'C:UsersCarterDesktopPythonBananas2venvScriptspython.exe -m pip install --upgrade pip' command.
, влияет ли это на мою проблему?3. Необходимость обновления не должна влиять на
pip
вас, хотя вы, вероятно, могли бы попробовать обновить pip и посмотреть, изменится ли что-нибудь, но я сомневаюсь, что это произойдет.4. Не могли бы вы попробовать запустить
pip freeze
список пакетов, которые у вас есть в вашем virtualenv? Кроме того, убедитесь, что вы действительно находитесь внутриvenv.
5. Запуск pip freeze в виртуальной среде дает мне:
certifi==2020.12.5 chardet==4.0.0 idna==2.10 praw==7.1.4 prawcore==1.5.0 requests==2.25.1 six==1.15.0 update-checker==0.18.0 urllib3==1.26.3 websocket-client==0.57.0
Ответ №4:
Я установил praw с помощью pip3 install praw
. Таким образом, он не отображается в моем системном python по умолчанию, т.е. python 2.7.17.
cam@cam:~$ python
Python 2.7.17 (default, Sep 30 2020, 13:38:04)
[GCC 7.5.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import praw
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named praw
>>>
[5] Stopped python
cam@cam:~$ python3
Python 3.6.9 (default, Oct 8 2020, 12:12:24)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import praw
Ответ №5:
Если вы хотите использовать praw с python2, вам придется использовать:
pip install praw
Если вы хотите использовать praw с python3, вам придется использовать:
pip3 install praw
Ответ №6:
Большое вам всем спасибо за вашу помощь, но я наконец-то понял, что стало причиной моей проблемы! В отдельном файле для бота под названием requirements.txt , у меня было:
git https://github.com/Rapptz/Discord.py
PyNaCl==1.3.0
pandas
dnspython==1.16.0
async-timeout==3.0.1
Я просто добавил praw==7.2.0
, и это сработало! Я ценю ваши усилия в попытке помочь мне 🙂