Если вы используете setuptools для распространения вашего приложения/пакета, вы можете получить доступ к установленной версии пакета во время выполнения, используя pkg_resources.get_distribution("my_package").version
. Однако Setuptools не поддерживает автоматическую версию мечения с ртутным версиями, так что вам придется строить свои дистрибутивы с командами, как:
python3 setup.py egg_info -b -$(hg heads --template "{node|short}" `hg branch`) sdist
или
python3 setup.py egg_info -b -$(hg heads --template "{node|short}" `hg branch`) setup
На самом деле, я не распространять приложения; Я запускаю его только на своей машине (вызывая 'main.py' непосредственно из командной строки ...) – max
Если у вас есть отдельные пути разработки/развертывания (это очень рекомендуемый подход), вы все равно можете использовать setuptools для развертывания. В противном случае единственным вариантом было бы создание автогенерированного файла, который содержит текущую версию, и привязать его генерацию к сценарию post-commit. – abbot
Должно ли это входить в 'changegroup' или' commit'? И какая операция позволила бы мне создать файл с именем (или содержать внутри него) номер версии? – max