2009-06-23 4 views
14

Самый простой способ справиться с установками пакета python, до сих пор для меня, заключался в том, чтобы проверить источник из исходной системы управления, а затем добавить символическую ссылку на уровне python -пакетами.Пакет Python, устанавливающий с помощью pip или easy_install из repos

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

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

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

ответ

26

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

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

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

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

pip install -r requirements.txt 

установить тот же набор пакетов в тех же самых версиях.

+0

Infact В настоящее время я использую соединительную линию pip, которая также включает в себя удаление, которое вы написали. –

+0

Отлично. Да, я полагал, что вы контролировали это, но хотели, чтобы этот ответ был доступен кому-то другому, который сталкивался с вопросом. –

11

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

$ python setup.py develop 

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

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

http://pypi.python.org/pypi/virtualenv 
+2

+1: virtualenv необходим при создании python – codeape

+0

virtualenv необходим <3 –

+3

Также обратите внимание, что «pip install -e.» эквивалентно «python setup.py develop», за исключением того, что он также работает с пакетами, которые не используют setuptools в своем setup.py (потому что pip заставляет их использовать его в любом случае;) –

4

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

easy_install python-dateutil==1.4.0 

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

Существует также поддержка svn checkouts, но использование этого не дает вам больших преимуществ от вашей версии руководства. Дополнительную информацию см. В руководстве.

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

+0

, если он не будет python-dateutil = = 1,4,0 ​​(двойной эквивалент)? – typeoneerror

+0

да, он должен. Я починил это. –

0

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