Я немного смущен тем случаями, когда вышеупомянутые команды должны использоваться при загрузке пакетов python. Я пытался загрузить пакет с именем pudev в соответствии с ответом с этим apt software-installation python pip
Я немного смущен тем случаями, когда вышеупомянутые команды должны использоваться при загрузке пакетов python. Я пытался загрузить пакет с именем pudev в соответствии с ответом с этим apt software-installation python pip
PyPI - это индекс Python Package - репозиторий модулей python.
pip
используется для загрузки и установки пакетов непосредственно из PyPI. PyPI размещен Python Software Foundation . Это специализированный менеджер пакетов, который занимается только пакетами python.
apt-get
используется для загрузки и установки пакетов из репозиториев Ubuntu, которые размещаются в Canonical.
Некоторые различия между установкой пакетов python из apt-get
и pip
выглядят следующим образом:
Canonical предоставляет только пакеты для выбранных модулей python. В то время как PyPI размещает гораздо более широкий набор модулей python. Таким образом, существует много модулей python, которые вы не сможете установить, используя apt-get
.
В Canonical есть только одна версия любого пакета (как правило, последняя или выпущенная в недавнем прошлом). Таким образом, с apt-get
мы не можем решить версию пакета python, который мы хотим. pip
помогает нам в этой ситуации. Мы можем установить любую версию пакета, который ранее был загружен в PyPI. Это чрезвычайно полезно в случае конфликта в зависимостях.
apt-get
устанавливает модули python в общесистемном расположении. Мы не можем просто установить модули в нашем проекте virtualenv . pip
решает эту проблему для нас. Если мы используем pip
после активации virtualenv, он достаточно интеллектуальный, чтобы устанавливать модули только в нашем проекте virtualenv. Как уже упоминалось в предыдущем пункте, если версия определенного пакета python уже установлена в общесистемном расположении, и для одного из наших проектов требуется более старая версия того же пакета python, в таких ситуациях мы можем использовать virtualenv и pip для установки эта старая версия пакета python без каких-либо конфликтов.
Как @Radu Rădeanu указал в этом ответе , как правило, разница в именах пакетов также. Canonical обычно называет пакеты Python 2 как python-<package_name>
и пакеты Python 3 как python3-<package_name>
. Если для pip
нам просто нужно использовать <package_name>
для Python 2, а также для пакетов Python3.
Оба apt-get
и pip
являются зрелыми менеджерами пакетов, которые автоматически устанавливают любую другую зависимость пакета при установке. Вы можете использовать кого угодно, как хотите. Однако, если вам нужно установить определенную версию пакета python или установить пакет в virtualenv или установить пакет, который размещается только в PyPI; только pip
поможет вам решить эту проблему. В противном случае, если вы не возражаете устанавливать пакеты в общесистемном расположении, не имеет значения, используете ли вы apt-get
или pip
.
Как @AvinashRaj сказал в его комментарий , pip
используется для установки пакетов python, но apt-get
используется для установки пакетов, созданных на любом языке программирования.
Основная проблема заключается в том, чтобы найти правильное имя пакета в обоих случаях:
pip search pyudev
предоставит вам правильное имя для пакета, который вы хотите установить, используя pip install
, в качестве
apt-cache search pyudev
даст вам правильное имя пакета, который вы хотите установить, используя apt-get install
:
[email protected]: ~ $ pip search pyudev
pyudev - A libudev binding
[email protected]: ~ $ 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
. См. Например этот Q & amp; A о разница в установке пакета с использованием pip
и apt-get
.