2013-03-30 3 views
43

У меня есть внешний пакет, который я хочу установить в свой python virtualenv из tar-файла. Каков наилучший способ установки пакета?Разница между 'python setup.py install' и 'pip install'

Я обнаружил два способа, которые могут это сделать: 1) Извлеките tar-файл, затем запустите «python setup.py install» внутри извлеченной директории. 2) «pip install packagename.tar.gz» из примера № 7 в https://pip.pypa.io/en/stable/reference/pip_install/#examples

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

+2

Используйте 'pip'. Вы можете удалить пакеты вместе с ним. – Blender

+0

«Из источника», как в «Проверка VCS», или как в 'sdist'? – delnan

+0

Что такое «лучший», зависит от ваших требований! Вы пробовали какое-либо из этих решений и не смогли им чего-то не хватает? Или вы спрашиваете, какова разница * между этими подходами? –

ответ

48

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

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

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

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


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

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

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

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

8

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

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

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

Смежные вопросы