apt-get install vs pip install

Я немного запутался в случаях, когда вышеупомянутые команды должны использоваться при загрузке пакетов python. Я пытался загрузить пакет с именем pudev в соответствии с ответом на этот вопрос. Я выполнил эту команду:

sudo pip install python-pyudev

, но получил следующее сообщение:

Downloading/unpacking python-pyudev

  Could not find any downloads that satisfy the requirement python-pyudev
Cleaning up...
No distributions at all found for python-pyudev
Storing complete log in /home/vineet/.pip/pip.log

Однако следующее работало нормально:

sudo apt-get install python-pyudev

Когда [ f4], который должен использоваться для установки пакетов, и когда python-pip используется?

1
задан 13 April 2017 в 15:24

2 ответа

Как сказал @AvinashRaj в своем комментарии, pip используется для установки пакетов python, но apt-get используется для установки пакетов, созданных на любом языке программирования.

Ваша основная проблема - найти правильное имя пакета в обоих случаях:

pip search pyudev

даст вам правильное имя для пакета, который вы хотите установить, используя pip install, поскольку

apt-cache search pyudev

даст вам правое имя пакета, который вы хотите установить, используя apt-get install:

radu@Radu: ~ $ pip search pyudev
pyudev                    - A libudev binding
radu@Radu: ~ $ apt-cache search pyudev
python-pyudev - Python bindings for libudev
python3-pyudev - Python3 bindings for libudev

Итак, в заключении, корреспондент sudo apt-get install python-pyudev - sudo pip install pyudev, а не sudo pip install python-pyudev.

Теперь зависит от вас, что вы хотите выбрать, когда хотите установить пакет python: pip или apt-get. См., Например, его комментарий о различии в установке пакета с использованием pip и apt-get.

19
ответ дан 24 May 2018 в 10:58

Мой предпочтительный способ - всегда использовать apt и только в том случае, если модуль еще не доступен в репозитории Debian / Ubuntu для использования pip, но только в контексте пользователя - --user. Используя pip, все равно нужно получить все установленные зависимости от сборки, предположим, репозиторий Ubuntu или предоставить их сами, что может быть утомительной задачей. apt-get устанавливают двоичные пакеты, а pip строит их после загрузки. Нельзя использовать pip для установки модулей в системные местоположения. Это просто неправильно. Всегда используйте флаг --user для установки модуля в исходное местоположение. Правильно сконфигурированный PYTHONPATH позволяет питону сначала собирать модули из HOME, а затем системные модули, установленные с apt-get.

0
ответ дан 24 May 2018 в 10:58

Другие вопросы по тегам:

Похожие вопросы: