Установка пакета Python с использованием pip или easy_install из репозитория - PullRequest
14 голосов
/ 23 июня 2009

До сих пор для меня самым простым способом установки пакетов python было получение исходного кода из системы контроля версий, а затем добавление символической ссылки в папку python dist-packages.

Очевидно, что контроль версий предоставляет полный контроль для понижения, обновления до любой ветви, тега, он работает очень хорошо.

Есть ли способ использовать один из инсталляторов Пакета (easy_install или pip или другой), можно добиться того же.

easy_install получает tar.gz и устанавливает их с помощью установки setup.py, которая устанавливается в папку dist-packages в python2.6. Есть ли способ настроить его, или pip, чтобы использовать вместо него исходную систему контроля версий (SVN / GIT / Hg / Bzr).

Ответы [ 4 ]

26 голосов
/ 26 октября 2009

Используя pip , это довольно просто. Например:

pip install -e hg+http://bitbucket.org/andrewgodwin/south/#egg=South

Пип автоматически клонирует исходное хранилище и запускает «setup.pyvelop», чтобы вы могли установить его в свою среду (что, вероятно, virtualenv ) Git, Subversion, Bazaar и Mercurial все поддерживаются.

Затем вы также можете запустить «pip freeze», и он выведет список ваших установленных на данный момент пакетов с их точными версиями (включая, для развертки-установки, точную версию VCS). Вы можете поместить это прямо в файл требований и позже запустить

pip install -r requirements.txt

для установки того же набора пакетов в тех же версиях.

11 голосов
/ 23 июня 2009

Если вы загружаете или проверяете исходный дистрибутив пакета - тот, в котором есть файл «setup.py» - тогда, если пакет основан на «setuptools» (который также включает easy_install), вы можете перейдите в этот каталог и скажите:

$ python setup.py develop

и он создаст правильные символические ссылки в dist-пакетах, так что импортируемые файлы .py в исходном дистрибутиве будут импортироваться вместо копий, установленных отдельно (что и сделает установка setup.py install - создать отдельные копии, которые не изменяются сразу, когда вы редактируете исходный код, пытаясь изменить).

Как видно из другого ответа, вы должны попробовать прочитать документацию "setuptools", чтобы узнать больше. «setup.py development» - действительно полезная функция! Попробуйте использовать его в сочетании с virtualenv, и вы можете безболезненно "setup.py разрабатывать" без путаницы в общесистемном Python с пакетами, на которых вы только временно разрабатываете:

http://pypi.python.org/pypi/virtualenv
4 голосов
/ 23 июня 2009

easy_install поддерживает загрузку определенных версий. Например:

easy_install python-dateutil==1.4.0

Устанавливает v1.4, а последняя версия 1.4.1 будет выбрана, если версия не указана.

Существует также поддержка svn checkouts, но ее использование не дает больших преимуществ по сравнению с ручной версией. См. Руководство для получения дополнительной информации выше.

Возможность переключения на определенные ветки редко бывает полезна, если вы не разрабатываете пакеты, о которых идет речь, и тогда, как правило, не рекомендуется устанавливать их в пакеты сайтов.

0 голосов
/ 19 сентября 2009

easy_install также принимает URL для исходного дерева. Работает по крайней мере, когда источники находятся в Subversion.

...