пакеты python: как зависеть от последней версии отдельного пакета - PullRequest
2 голосов
/ 16 января 2012

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

Сайт зависит от стороннего приложения (django-registration), которое мне нужно было настроить для своего сайта, поэтому я разветвил оригинальное приложение и создал для него 2-й репозиторий (идея заключается в том, что таким образом я могу продолжать с обновлениями оригинала, что было бы невозможно, если бы я просто вставил код на свой основной сайт, а также добавил в свой собственный код) (Вы можете увидеть более подробную информацию по этому вопросу )

У меня вопрос, как мне указать требования к файлу setup.py, чтобы при установке сайта django я получал последнюю версию своего форка для стороннего приложения (я использую не дистрибутив, а setuptools, если это разница)?

Я пробовал это:

install_requires = ['django', 'django-registration'],
dependency_links = ['https://myuser@bitbucket.org/myuser/django-registration#egg=django_registration']

но я получаю последнюю именованную версию в исходном транке (так что даже не в версии с подсказкой)

Однако использование файла требований к пипсам работает хорошо:

hg+https://myuser@bitbucket.org/myuser/django-registration#egg=django-registration

получает мне последнюю версию с моего форка.

Есть ли способ получить такое же поведение непосредственно из файла setup.py без необходимости сначала устанавливать код для сайта, а затем запускать pip install -r needs.txt?

Этот вопрос очень информативен, но, похоже, предполагает, что я должен зависеть от версии 'dev' или стороннего пакета, который не работает (я думаю, что должна быть помечена конкретная версия как разработчик для этого)

Кроме того, я новичок в упаковке / распространении / настройке, так что не откладывайте объяснение шагов :)

Может быть, мне следует изменить файл setup.py на моей ветке стороннего приложения и убедиться, что в нем указан номер версии. Вообще мне любопытно узнать, что является исходным дистрибутивом, в отличие от простого размещения моего кода в общедоступном репозитории, и каким будет бинарный дистрибутив в моем случае (файл egg?), И будет ли это более практичным для при удаленном развертывании / пусть мой друг развернет на своем компьютере. А также хотел бы знать, как мне пометить версию в моем репозитории для setup.py, чтобы ссылаться на нее, это просто тег контроля версий (в моем случае hg)? Не стесняйтесь комментировать любые детали, которые вы считаете важными для начинающего упаковщика:)

Спасибо!

1 Ответ

0 голосов
/ 25 апреля 2012

поставить это:

dependency_links=['https://bitbucket.org/abraneo/django-registration/get/tip.tar.gz#egg=django-registration']

в зависимых_ ссылках вы должны передать URL-адрес для загрузки, подобный этому.

"abraneo" - это парень, который тоже подписал этот проект, замените его имя на ваше.

...