где должен быть установлен pygame по pip?/ usr / lib или ~ / .local / lib? - PullRequest
0 голосов
/ 13 февраля 2019

В прошлом году я тестировал CARLA, автосимулятор с автоматическим управлением на Ubuntu 16.04.5 LTS, и в то время я установил Pygame.В то время pygame был установлен в /usr/lib/python2.7/dist-packages/pygame, и я исправил там файл, чтобы он работал правильно.Теперь, недавно я переустановил Ubuntu 16.04.5 LTS для машины (только часть ОС) и попытался протестировать CARLA и обнаружил, что мне нужно установить pygame (что, конечно,).Итак, я сделал pip install pygame (без sudo) и теперь CARLA снова работает.
Но вскоре я обнаружил, что расположение установки pygame теперь не /usr/lib/python2.7/dist-packages/pygame, а ~ / .local/lib/python2.7/site-packages/pygame.
Почему он установлен в моем локальном домашнем каталоге, а не в системном каталоге?(Я попытался установить его с помощью sudo, но он говорит, что требование уже выполнено.)
Я попытался python -m pip uninstall pip, но получил сообщение ниже.

 Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr
You are using pip version 8.1.1, however version 19.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

я должен сделать pip upgrade?
ДОБАВИТЬ: Этот вопрос не о 'sudo' или 'apt install'.Обычно в apt install, если мы опускаем sudo, он запрашивает привилегии root и не устанавливает его.Но pip устанавливает его в ~ / .local.Поэтому этот вопрос отличается от предложенного дублирующего вопроса.

1 Ответ

0 голосов
/ 13 февраля 2019

Во-первых, python -m pip uninstall pip предназначен для удаления pip, а не pygame, поэтому вы не захотите это сделать.

При вызове с sudo pip будетустановите общесистемные библиотеки на /usr/lib, чтобы они были доступны всем пользователям.

При вызове без sudo и / или с флагом --user они устанавливаются для вашего пользователя только в вашем домашнем каталоге.В любом случае pip сообщает о том, что библиотека уже установлена, и ее не нужно переустанавливать.Посмотрите на ссылку, предоставленную triplee, а также здесь

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

import sys
print(sys.path)

Если обратиться к вашей точке, оба эти места подходят , это просто вопрос предпочтений.

Если вы хотите удалить pygame из ~/.local, выследует попробовать pip uninstall pygame, а затем снова использовать sudo pip install pygame, чтобы установить общесистемную установку статической версии.

По моему мнению, лучше собирать пользовательские зависимости локально, чтобы каждый пользователь был свободенустанавливать / удалять / обновлять библиотеки и модули в соответствии с его требованиями и желательно внутри его Virtual Environment .

...