Python зависимость + инструмент развертывания? - PullRequest
5 голосов
/ 23 мая 2011

Кто-нибудь знает инструмент для обработки зависимостей модуля + развертывание в Python?

Подробности: под дескриптором я имею в виду:

  • список,
  • keepдорожка и
  • связывают zip / устанавливаемый файл для меня.
  • Сделать несложным повторное развертывание в другой системе (т. Е. Включает все модули с правильной версией в файл развертывания, и не нужно куда-то идти, чтобы получить их *).
  • Предупреждает меня, если я собираюсь сделать что-то, что изменяет окружающую среду.
  • Он должен полностью следовать зависимостям от модулей, а не только на один уровень глубины.
  • Плюс кое-что, о чем я, вероятно, даже не задумывался.

  • Я не говорю о Virtualenv, Fabric, заморозке пипсов ** и (я не думаю) Paver.

Этим вечеромЯ попытался посчитать модули, от которых зависит Pylons.После обхода Snakefood и Graphviz ответ - МНОГО.100+ (и Snakefood не получил их всех).

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

Если это имеет значение, яиспользовать Python 2.7 в Windows 7.

* I know this will introduce some artifacts.  
** Combining virtualenv and pip freeze goes some way to solving this, but it's still not what I am looking for. 

Ответы [ 2 ]

5 голосов
/ 23 мая 2011

Setuptools plus pypi предназначены для этого.Setuptools - это расширенный distutils, с помощью которого вы можете указать зависимости.Например, в функции настройки:

install_requires = ['simplejson>=2.0,==dev'],

Будет извлекать эту зависимость при использовании easy_install.

2 голосов
/ 23 мая 2011

Поскольку вы находитесь в Windows, взгляните на py2exe .Что-то интересное из py2exe FAQ :

How does py2exe decide which modules you need?
To determine which modules should go in the final .exe file, py2exe 
does a recursive search of the script that you are packaging to find 
its dependencies and, in turn, all of their dependencies.

...