Как правильно установить зависимость Python?(может без sudo?) - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь запустить некоторый код с python.Он использует tweepy библиотеку.Затем я получил эту ошибку:

Traceback (most recent call last):
  File "script.py", line 1, in <module>
    import tweepy
ImportError: No module named 'tweepy'

Итак, я попытался установить зависимость: pip install tweepy И разрешение было отклонено:

ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/sockshandler.py'
Consider using the `--user` option or check the permissions.

Следующее, что нужно сделать, это запустить с помощьюsudo.У меня был плохой опыт использования sudo для докера, потому что он создает защищенные файлы по всему моему локальному.Но в конце концов я все-таки попробовал sudo pip install tweepy Он возвращает успех, но я все равно получаю ту же ошибку при попытке запустить python3 myscript.py

Но я вижу предупреждение об обновлении пипса, так что я думаю, что это может бытьЭто.Я попытался обновить пипс, используя pip install --upgrade pip и sudo pip install --upgrade pip

Все еще не работает .. Я попробовал один последний трюк в рукаве.Поменяй терминал.Я думаю: «возможно, после установки какая-то переменная окружения не работает на этом терминале»

Нет.Не работает.Я признаю, что это должен быть вопрос новичка.Попробовав какое-то решение в Интернете, но все еще не работающий.Спасибо.

Ответы [ 4 ]

3 голосов
/ 19 сентября 2019

Если вы используете python3, вам следует использовать pip3, pip, скорее всего, pip Python2.

Однако лучше использовать python3 -m pip install tweepy, который гарантирует, что вы используете pip для вашей конкретной версии python.

Вы также можете установить его как пользователь без sudo только для своей локальной учетной записи: python3 -m pip install --user tweepy

0 голосов
/ 19 сентября 2019

Похоже, у вас есть 2 установки Python на машине.Python 3.x и Python 2.7.Когда вы запускаете команду pip, псевдоним указывает на pip2, который устанавливает пакеты для Python 2.7 - что ясно из вашего сообщения об ошибке

Permission denied: '/usr/local/lib/python2.7/dist-packages/sockshandler.py'

Так что, если вы хотите установить пакеты для Python 3,затем используйте команду pip3 вместо pip.

Как sudo pip3 install tweepy

Если вы хотите, чтобы pip работал как pip3, вы можете добавить псевдоним с alias pip=pip3

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

0 голосов
/ 19 сентября 2019

Используйте флаг --user, например, так ...

pip|pip3 install <PACKAGE> --user

Это установит его в доступное и доступное для записи место для пользователя

См. https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site

0 голосов
/ 19 сентября 2019

Посмотрите на сообщение об ошибке:

... Permission denied: '/usr/local/lib/python2.7 ....

Вы установили tweepy в вашей установке python2.Вместо этого используйте pip3 install tweepy.Может быть, с sudo, когда вы получаете ошибку с разрешением снова отказано.После этого вы можете перейти с

python3 myscript.py

...