Не удается импортировать praw

#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 , и это сработало! Я ценю ваши усилия в попытке помочь мне 🙂