У меня есть скрипт python, который выдает имя программы, номер версии и автора при вызове с аргументами командной строки, такими как --help или --version. В настоящее время эта информация жестко закодирована в самом скрипте python. Но я использую distutils для создания/упаковки приложения, поэтому вся эта информация уже присутствует в setup.py. Можно ли позволить distutils записывать метаданные, такие как версия и имя автора/электронная почта, на встроенный скрипт python, поэтому мне нужно поддерживать эти данные только в файле setup.py? Или есть еще один стандартный механизм для обработки таких вещей?Заменить символы в скрипте python при распространении
ответ
Сделайте это наоборот. Добавьте номер версии, имя автора и другие метаданные, которые вам нужны в скрипте, к самому сценарию. Затем import
или execfile()
сценарий в setup.py
и используйте метаданные, определенные в скрипте, в качестве аргументов функции setup()
.
У вас есть файл __version__.py
в корне вашего пакета, создайте его на сборке с помощью setup.py и выберите из него информацию о версии для -help или -version. Вот как Mercurial рулоны.
Да, это лучший способ сделать это. В качестве бонуса, если ваш version.py содержит только простые назначения, такие как 'version = '0.1.2'', тогда файл также может быть проанализирован с помощью bash, что полезно для ситуаций, когда вы должны запускать сценарий оболочки, который должен узнать номер версии пакета. – bstpierre
Но это не имеет ничего общего с питонами distutils. Я не хочу вызывать специальные команды, прежде чем делать «./setup.py install». – kayahr