У меня есть внешний пакет, который я хочу установить в свой 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
Есть ли разница, выполняя их этими двумя способами.
python
virtualenv
pip
setup.py
user2125465
источник
источник
pip
. С его помощью вы можете удалять пакеты.sdist
?yum
.Ответы:
На поверхности, как сделать то же самое: делать либо
python setup.py install
илиpip install <PACKAGE-NAME>
установит пакет питона для вас, с минимальным количеством суеты.Однако использование pip дает некоторые дополнительные преимущества, которые делают его намного удобнее.
setup.py
, вам часто приходится вручную искать и загружать зависимости, что утомительно и может раздражать.pip uninstall <PACKAGE-NAME>
иpip install --upgrade <PACKAGE-NAME>
. Напротив, если вы устанавливаете пакет с помощьюsetup.py
, вам придется вручную удалить и поддерживать пакет вручную, если вы хотите избавиться от него, что может быть потенциально подвержено ошибкам.setup.py
, вам нужно посетить веб-сайт библиотеки, выяснить, где его загрузить, извлечь файл, запуститьsetup.py
... Напротив, pip будет автоматически искать в индексе пакетов Python (PyPi), чтобы узнать, существует ли там пакет, и автоматически загрузит, распакует и установит пакет. За некоторыми исключениями, почти все действительно полезные библиотеки Python можно найти на PyPi.virtualenv
- программой, которая позволяет запускать несколько проектов, требующих конфликтующих библиотек и версий Python на вашем компьютере. Больше информации .Итак, в основном используйте pip. Он предлагает только улучшения по сравнению с использованием
python setup.py install
.Если вы используете старую версию Python, не можете выполнить обновление и у вас не установлен pip, вы можете найти дополнительную информацию об установке pip по следующим ссылкам:
pip сам по себе не требует обучения. В 90% случаев единственная команда, которая вам действительно нужна, - это
pip install <PACKAGE-NAME>
. Тем не менее, если вам интересно узнать больше о том, что именно вы можете делать с помощью pip, см.Также обычно рекомендуется использовать pip и virtualenv вместе. Если вы новичок в Python, я лично думаю, что было бы неплохо начать с простого использования pip и установки пакетов по всему миру, но в конечном итоге я действительно думаю, что вам следует перейти на использование virtualenv, когда вы беретесь за более серьезные проекты.
Если вы хотите узнать больше об использовании pip и virtualenv вместе, см.
источник
python setup.py install
также скачивает и устанавливает зависимости. Это изменение с тех пор, как вы написали этот ответ в 2013 году?python setup.py install
является аналогом make install: это ограниченный способ компиляции и копирования файлов в целевые каталоги. Это не значит, что это лучший способ действительно установить программное обеспечение в вашей системе.pip
- это менеджер пакетов, который может устанавливать, обновлять, перечислять и удалять пакеты, например знакомые менеджеры пакетов, в том числе:dpkg, apt, yum, urpmi, ports
и т. д. Под капотом он будет работатьpython setup.py install
, но с определенными параметрами для управления тем, как и где в конечном итоге будут установлены вещи.В итоге: используйте
pip
.источник
Вопрос заключается в предпочтительном методе установки локального tarball, содержащего пакет python, а НЕ о преимуществах загрузки пакета в службу индексации, такую как PyPi.
Поскольку я не знаю, что какой-то дистрибьютор программного обеспечения не загружает свой пакет в PyPi, вместо этого прося разработчиков загрузить пакет со своего веб-сайта и установить.
Это может сработать, но не рекомендуется. Нет необходимости разворачивать архивный файл и заходить в него для запуска файла setup.py.
Этот способ разработан и предпочтителен. Кратко и согласовано с пакетами в стиле PyPi.
Более подробную информацию
pip install
можно найти здесь: https://pip.readthedocs.io/en/stable/reference/pip_install/источник