Установка пакета Python с помощью pip или easy_install из репозиториев
-
06-07-2019 - |
Вопрос
До сих пор для меня самым простым способом разобраться с установками пакетов python было проверить исходный код из системы управления версиями, а затем добавить символическую ссылку в папку python dist-packages.
Очевидно, что, поскольку система управления версиями обеспечивает полный контроль над понижением версии, обновлением до любой ветки, тега, это работает очень хорошо.
Есть ли способ, используя один из установщиков пакетов (easy_install, pip или другой), добиться того же.
easy_install получает tar.gz и устанавливает их с помощью setup.py install, который устанавливается в папку dist-packages в python2.6.Есть ли способ настроить его, или pip для использования системы контроля версий исходного кода (SVN / GIT / Hg / Bzr) вместо этого.
Решение
Используя pip , это довольно просто. Например:
pip install -e hg+http://bitbucket.org/andrewgodwin/south/#egg=South
Пип автоматически клонирует исходный репозиторий и запускает «setup.py develop» для вас, чтобы установить его в вашей среде (которая, мы надеемся, virtualenv ). Git, Subversion, Bazaar и Mercurial все поддерживаются. Р>
Затем вы также можете запустить " pip freeze " и он выведет список ваших установленных на данный момент пакетов с их точными версиями (включая, для Develop-Installs, точную версию от VCS). Вы можете поместить это прямо в файл требований и позже запустить
pip install -r requirements.txt
чтобы установить тот же набор пакетов в тех же версиях.
Другие советы
Если вы загружаете или проверяете исходный дистрибутив пакета & # 8212; тот, который имеет свой «setup.py» внутри него & # 8212; затем, если пакет основан на «setuptools» (который также включает easy_install), вы можете перейти в этот каталог и сказать:
$ python setup.py develop
и он создаст правильные символические ссылки в dist-пакетах, так что импортируемые файлы .py в исходном дистрибутиве - это те, которые импортируются, а не устанавливаются отдельно (что будет делать «setup.py install») # 8212; создавать отдельные копии, которые не изменяются сразу, когда вы редактируете исходный код, чтобы попробовать внести изменения.
Как показывает другой ответ, попробуйте прочитать " setuptools " документация, чтобы узнать больше. " setup.py development " это действительно полезная функция! Попробуйте использовать его в сочетании с virtualenv, и вы можете «setup.py разработать» безболезненно и без путаницы общесистемного Python с пакетами, которые вы только временно разрабатываете:
http://pypi.python.org/pypi/virtualenv
easy_install поддерживает загрузку определенных версий.Например:
easy_install python-dateutil==1.4.0
Будет установлена версия v1.4, в то время как будет выбрана последняя версия 1.4.1, если версия не была указана.
Существует также поддержка извлечений svn, но использование этого не дает вам особых преимуществ по сравнению с вашей ручной версией.Смотрите руководство для получения дополнительной информации выше.
Возможность переключаться на определенные ветви редко бывает полезной, если только вы не разрабатываете соответствующие пакеты, и тогда, как правило, не рекомендуется устанавливать их в пакеты сайта в любом случае.
easy_install также принимает URL для исходного дерева. Работает по крайней мере, когда источники находятся в Subversion.