Подтвердить что ты не робот

Разница между "установкой python setup.py" и "pip install"

У меня есть внешний пакет, который я хочу установить в свой python virtualenv из файла tar. Каков наилучший способ установки пакета?

Я обнаружил 2 способа сделать это:

  1. Распакуйте файл tar, затем запустите python setup.py install внутри распакованного каталога.
  2. pip install packagename.tar.gz из примера №7 в https://pip.pypa.io/en/stable/reference/pip_install/#examples

Если есть какая-то разница, делая их этими двумя способами.

4b9b3361

Ответ 1

На первый взгляд, оба делают одно и то же: выполнение python setup.py install или pip install <PACKAGE-NAME> установит ваш пакет python для вас с минимальным суетой.

Тем не менее, использование pip дает некоторые дополнительные преимущества, которые делают его более приятным для использования.

  • pip автоматически загрузит все зависимости для пакета для вас. Напротив, если вы используете setup.py, вам часто приходится вручную искать и загружать зависимости, что утомительно и может привести к разочарованию.
  • pip отслеживает различные метаданные, которые позволяют легко удалять и обновлять пакеты с помощью одной команды: pip uninstall <PACKAGE-NAME> и pip install --upgrade <PACKAGE-NAME>. Напротив, если вы устанавливаете пакет с помощью setup.py, вам придется вручную удалять и поддерживать пакет вручную, если вы хотите избавиться от него, который может быть подвержен ошибкам.
  • Вам больше не нужно загружать файлы вручную. Если вы используете setup.py, вам нужно посетить веб-сайт библиотеки, выяснить, где его загрузить, извлечь файл, запустить setup.py... Напротив, pip автоматически выполнит поиск в индексе пакетов Python (PyPi), чтобы увидеть, существует ли там пакет, и автоматически загрузит, распакует и установит пакет для вас. За некоторыми исключениями, почти каждая действительно полезная библиотека Python может быть найдена в PyPi.
  • pip позволит вам легко установить колеса, что является новым стандартом дистрибутива Python. Подробнее о колесах.
  • pip предлагает дополнительные преимущества, которые хорошо интегрируются с использованием virtualenv, программы, которая позволяет вам запускать несколько проектов, которые требуют конфликтующих библиотек и версий Python на вашем компьютере. Подробнее.
  • По умолчанию pip связан с Python начиная с Python 2.7.9 для серии Python 2.x и начиная с Python 3.4.0 для серии Python 3.x, что делает его еще более простым в использовании.

Так что в основном используйте pip. Он предлагает только улучшения по сравнению с использованием python setup.py install.


Если вы используете более старую версию Python, не можете выполнить обновление и у вас не установлен pip, вы можете найти дополнительную информацию об установке pip по следующим ссылкам:

pip сам по себе не требует учебника. В 90% случаев единственная команда, которая вам действительно нужна, это pip install <PACKAGE-NAME>. Тем не менее, если вы заинтересованы в том, чтобы узнать больше о том, что именно вы можете сделать с помощью pip, см.:

Также обычно рекомендуется использовать pip и virtualenv вместе. Если вы новичок в Python, лично я думаю, что было бы неплохо начать с простого использования pip и устанавливать пакеты по всему миру, но в конце концов я думаю, что вам следует перейти на использование virtualenv для решения более серьезных проектов.

Если вы хотите узнать больше об использовании pip и virtualenv вместе, см.:

Ответ 2

python setup.py install является аналогом make install: это ограниченный способ компиляции и копирования файлов в целевые каталоги. Это не означает, что это лучший способ действительно установить программное обеспечение в вашей системе.

pip - менеджер пакетов, который может устанавливать, обновлять, перечислять и удалять пакеты, например, знакомые менеджеры пакетов, в том числе: dpkg, apt, yum, urpmi, ports и т.д. Под капотом он запускает python setup.py install, но с определенными варианты управления тем, как и где все в конечном итоге установлено.

В итоге: используйте pip.

Ответ 3

Речь идет о предпочтительном способе установки локального тарбола, содержащего пакет python, а не , а о преимуществах загрузки пакета в службу индексирования, такую как PyPi.

Как известно, некоторые распространители программного обеспечения не загружают свой пакет в PyPi, а просят разработчиков загрузить пакет со своего веб-сайта и установить.

python setup.py установить

Это может работать, но не рекомендуется. Нет необходимости распаковывать файл tarball и заходить в него, чтобы запустить файл setup.py.

pip install../path/to/packagename.tar.gz

Это способ, разработанный и предпочтительный. Краткий и совместимый с пакетами в стиле PyPi.

Более подробную информацию о pip install можно найти здесь: https://pip.readthedocs.io/en/stable/reference/pip_install/