Твит гласит:
Не используйте easy_install, если вам не нравится наносить удар себе в лицо. Используйте пипс.
Зачем использовать pip вместо easy_install? Не виновата ли в основном PyPI и авторы пакетов ? Если автор загружает исходный архив с дерьмом (например, отсутствующие файлы, но не setup.py) в PyPI, то и pip, и easy_install завершатся неудачно. Помимо косметических отличий, почему Python люди (как в приведенном выше чирикать) , кажется, сильно выступают над пип easy_install?
(Предположим, что мы говорим о easy_install из пакета Distribute, который поддерживается сообществом)
python
pip
setuptools
easy-install
pypi
Шридхар Ратнакумар
источник
источник
setuptools
не является частью Python 3, потому чтоpip
есть, и это единственная часть, которая нужна конечным пользователям. (И разработчики, которые хотят распространять на PyPI, могут, очевидноpip install setuptools
, и все остальное, что они могли бы хотеть.)Ответы:
Многие из приведенных здесь ответов устарели в 2015 году (хотя изначально принятый ответ от Дэниэла Роузмана нет). Вот текущее состояние вещей:
.whl
файлов) - не только в PyPI, но и в сторонних репозиториях, таких как пакеты расширений Christoph Gohlke для Windows .pip
может обращаться с колесами;easy_install
не можешь.virtualenv
) стали очень важным и выдающимся инструментом (и рекомендуется в официальных документах ); они включаютpip
из коробки, но даже не работают должным образомeasy_install
.distribute
Пакет , который включалeasy_install
больше не поддерживается. Его улучшения по сравнению сsetuptools
вернулисьsetuptools
. Попытка установитьdistribute
будет просто установитьsetuptools
вместо этого.easy_install
сам по себе только квази-поддерживаемый.pip
раньше было хуже - установкаeasy_install
из распакованного исходного дерева, из репозитория DVCS и т. Д., Давно прошли; вы можетеpip install .
,pip install git+https://
.pip
поставляется с официальными пакетами Python 2.7 и 3.4+ от python.org, иpip
при сборке из исходного кода по умолчанию включается загрузчик.pip
«предпочтительной программой установки».pip
за эти годы, которые никогда не будут вeasy_install
. Например,pip
позволяет легко клонировать ваши пакеты сайтов, создав файл требований и затем установив его с помощью одной команды на каждой стороне. Или преобразовать файл требований в локальный репозиторий, чтобы использовать его для внутренней разработки. И так далее.Единственная веская причина, которую я знаю для использования
easy_install
в 2015 году, - это особый случай использования предустановленных версий Apple Python с OS X 10.5-10.8. Начиная с 10.5, Apple включилаeasy_install
, но по состоянию на 10.10 они все еще не включеныpip
. С 10.9+ вы все равно должны просто использоватьget-pip.py
, но для 10.5-10.8 это имеет некоторые проблемы, так что прощеsudo easy_install pip
. (В целом,easy_install pip
это плохая идея; вы хотите сделать это только для OS X 10.5-10.8.) Кроме того, 10.5-10.8 включаютreadline
способ, которыйeasy_install
знает, как разбираться, ноpip
нет, поэтому вы также хотитеsudo easy_install readline
если вы хотите обновить это.источник
pip
в прошедшее время.easy_install -U pip
илиeasy_install3 -U pip
.easy_install
» Это был не мой опыт, хотя я давно не пробовал, так как сейчас доминируют колеса. Но двоичные файлы Кристофа Гольке использовались как исполняемые яйца. Позвонитьeasy_install
им было единственным способом установить эти пакеты в виртуальной среде, и это никогда не вызывало у меня изжоги.easy_install
Каким образом больше не работает с виртуальными envs?Из собственного вступления Яна Бикинга в pip :
источник
easy_install pip
болееsudo apt-get install python-pip
?sudo apt-get
Ubuntu / Debian будет устанавливать пакеты Python в/usr/lib/python/dist-packages
то время какsudo pip
илиsudo easy_install
будет устанавливать в,/local/lib/python/site-packages
и, к сожалению, пакеты Debian / Ubuntu часто имеют разные имена, с которыми pip не знаком. Лучшее решение IMHO - использовать virtualenv иpip
устанавливать там свои пакеты.Другая, еще не упомянутая, причина отдавать предпочтение пипсам заключается в том, что это новый жар и будет использоваться в будущем.
Приведенная ниже инфографика - из раздела « Текущее состояние упаковки » в « Руководстве автостопщика по упаковке v1.0» - показывает, что setuptools / easy_install исчезнет в будущем.
Вот еще одна инфографика из документации дистрибутива, показывающая, что Setuptools и easy_install будут заменены на новую версию - дистрибутив и pip . Несмотря на то, что pip по-прежнему остается новым продуктом, Distribute объединилась с Setuptools в 2013 году с выпуском Setuptools v0.7.
источник
distribute
сливается сsetuptools
.pip
работает.packaging
(distutils2
) не входит в Python 3.3 .Причин может быть две:
Пип обеспечивает
uninstall
командуесли в середине произойдет сбой установки, pip оставит вас в чистом состоянии.
источник
ТРЕБОВАНИЯ к файлам.
Серьезно, я использую это в сочетании с virtualenv каждый день.
БЫСТРОЕ УПРАВЛЕНИЕ ЗАВИСИМОСТЬЮ, НАРОДНЫЙ
Файлы требований позволяют вам создавать снимок всех пакетов, которые были установлены через pip. Инкапсулируя эти пакеты в виртуальной среде, вы можете заставить свою кодовую базу работать с очень конкретным набором пакетов и делиться этой кодовой базой с другими.
Из документации Heroku https://devcenter.heroku.com/articles/python
Вы создаете виртуальную среду и настраиваете ее на использование оболочки. (инструкции bash / * nix)
Теперь все скрипты Python, запускаемые с этой оболочкой, будут использовать пакеты и конфигурацию этой среды. Теперь вы можете установить пакет локально в эту среду без необходимости устанавливать его глобально на вашем компьютере.
Теперь вы можете получить информацию о том, какие пакеты установлены с
Если вы проверили этот файл в системе контроля версий, когда кто-то другой получит ваш код, он может настроить свою собственную виртуальную среду и установить все зависимости с помощью:
В любое время вы можете автоматизировать скуку, как это здорово.
источник
pipreqs
для получения файла needs.txt. Он выдаст только библиотеки, относящиеся к проекту, в который вы вызываете pipreqs, так что require.txt будет основан на проекте, а не на virtualenv.pip не устанавливает двоичные пакеты и не очень хорошо протестирован в Windows.
Поскольку Windows не поставляется с компилятором по умолчанию, pip часто не может использоваться там. easy_install может устанавливать бинарные пакеты для Windows.
источник
wheel
Формат двоичного распределения делает это возможным. Многие сторонние пакеты с модулями расширения C также распространяются в виде колес, созданных для различных платформ, и pip может их автоматически устанавливать. См. Например, pythonwheels.comОБНОВЛЕНИЕ:
setuptools
впитал,distribute
а не наоборот, как некоторые думали.setuptools
в курсе последнихdistutils
изменений и формата колеса. Следовательно,easy_install
иpip
сейчас более или менее на равных.Источник: http://pythonhosted.org/setuptools/merge-faq.html#why-setuptools-and-not-distribute-or-another-name
источник
easy_install
это то, чем он был в течение долгого времени, и он значительно улучшился.easy_install
это только частьsetuptools
и, возможно, одна из худших, поэтому pip стремится заменить ее.В дополнение к ответу Пушистика:
Вот хитрость в Windows:
вы можете использовать
easy_install <package>
для установки бинарных пакетов, чтобы избежать сборки бинарногоВы можете использовать,
pip uninstall <package>
даже если вы использовали easy_install.Это просто обходной путь, который работает для меня на окнах. На самом деле, я всегда использую pip, если нет бинарных файлов.
Смотрите текущую документацию pip: http://www.pip-installer.org/en/latest/other-tools.html#pip-compared-to-easy-install.
Вот последнее обновление:
Новый поддерживаемый способ установки бинарных файлов будет
wheel
! Это еще не в стандарте, но почти. Текущая версия по-прежнему альфа: 1.0.0a1https://pypi.python.org/pypi/wheel
http://wheel.readthedocs.org/en/latest/
Я буду тестировать
wheel
, создавая установщик OS X дляPySide
использованияwheel
вместо яиц. Вернусь и сообщу об этом.ура - Крис
Быстрое обновление:
Переход к
wheel
почти завершен. Большинство пакетов поддерживаютwheel
.Я обещал построить колеса для
PySide
, и я сделал это прошлым летом. Работает отлично!СОВЕТ: Некоторым разработчикам пока не удалось поддержать формат колеса просто потому, что они забыли заменить
distutils
наsetuptools
. Часто такие пакеты легко преобразовать, заменив это единственное слово вsetup.py
.источник
Только что встретил один особый случай, который я должен был использовать
easy_install
вместоpip
, или я должен получить исходные коды напрямую.Для пакета
GitPython
версия inpip
слишком старая0.1.7
, аeasy_install
последняя - последняя0.3.2.rc1
.Я использую
Python 2.7.8
. Я не уверен насчет подстилающего механизмаeasy_install
иpip
, но по крайней мере версии некоторых пакетов могут отличаться друг от друга, а иногдаeasy_install
и с более новой версией.источник