2011-01-16 2 views
2

У меня есть скрипт python, который выдает имя программы, номер версии и автора при вызове с аргументами командной строки, такими как --help или --version. В настоящее время эта информация жестко закодирована в самом скрипте python. Но я использую distutils для создания/упаковки приложения, поэтому вся эта информация уже присутствует в setup.py. Можно ли позволить distutils записывать метаданные, такие как версия и имя автора/электронная почта, на встроенный скрипт python, поэтому мне нужно поддерживать эти данные только в файле setup.py? Или есть еще один стандартный механизм для обработки таких вещей?Заменить символы в скрипте python при распространении

ответ

3

Сделайте это наоборот. Добавьте номер версии, имя автора и другие метаданные, которые вам нужны в скрипте, к самому сценарию. Затем import или execfile() сценарий в setup.py и используйте метаданные, определенные в скрипте, в качестве аргументов функции setup().

0

Вы всегда можете использовать sed. Страница man для sed - Here.

Получите это для окон (если вы используете окна), это правильно Here. Обычно он устанавливается на Linux, Unix и OS X.

+0

Но это не имеет ничего общего с питонами distutils. Я не хочу вызывать специальные команды, прежде чем делать «./setup.py install». – kayahr

2

У вас есть файл __version__.py в корне вашего пакета, создайте его на сборке с помощью setup.py и выберите из него информацию о версии для -help или -version. Вот как Mercurial рулоны.

+0

Да, это лучший способ сделать это. В качестве бонуса, если ваш version.py содержит только простые назначения, такие как 'version = '0.1.2'', тогда файл также может быть проанализирован с помощью bash, что полезно для ситуаций, когда вы должны запускать сценарий оболочки, который должен узнать номер версии пакета. – bstpierre