Разница между питоном setup.py установить и пункт Установить'
у меня есть внешний пакет, который я хочу установить в свой python virtualenv из файла tar. Что является лучшим способом, чтобы установить пакет?
я обнаружил 2 способа, которые могут это сделать:
- извлеките файл tar, затем запустите
python setup.py install
внутри распакованного каталога. -
pip install packagename.tar.gz
из примера # 7 в https://pip.pypa.io/en/stable/reference/pip_install/#examples
Если есть какая-то разница делать их в эти 2 способа.
2 ответа:
на поверхности оба делают одно и то же: делают либо
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.- Пип позволит вам легко установить колеса, который является новым стандартом распространения 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 для всех операционных систем
- инструкции по установке pip на Windows (включая решения для общих проблемы)
- инструкции по установке pip для Mac OX
pip, сам по себе, на самом деле не требует учебника. 90% времени, единственная команда, которая вам действительно нужна, это
pip install <PACKAGE-NAME>
. Тем не менее, если вам интересно узнать больше о деталях того, что именно вы можете сделать с pip, см.:также обычно рекомендуется использовать pip и virtualenv вместе. Если вы новичок в Python, я лично думаю, что было бы неплохо начать с простого использования pip и установить пакеты по всему миру, но в конечном итоге я думаю, что вы должны перейти к использованию virtualenv, поскольку вы занимаетесь более серьезными проектами.
если вы хотите узнать больше об использовании pip и virtualenv вместе, см.:
python setup.py install
является аналогом make install: это ограниченный способ компиляции и копирования файлов в каталоги назначения. Это не означает, что это лучший способ действительно установить программное обеспечение в вашей системе.
pip
это менеджер пакетов, который может устанавливать, обновлять, перечислять и удалять пакеты, такие как знакомые менеджеры пакетов, включая:dpkg, apt, yum, urpmi, ports
etc. Под капотом, он будет работатьpython setup.py install
, но с определенными опциями, чтобы контролировать, как и где все заканчивается установленный.вкратце: используйте
pip
.