我正在使用 Babel 开发一个 Flask 应用程序。多亏了Distutils/Setuptools 集成,所有 compile/extract/... 函数的参数都存储在i18n 文件中setup.cfg
,编译 i18n 文件就像
./setup.py compile_catalog
伟大的。现在我希望在运行时自动完成
./setup.py install
换句话说make
,就是让install
目标依赖于compile_catalog
目标。
上下文
我们仅将翻译 ( .po
) 文件存储在代码存储库中。.gitignore排除.mo
和.pot
跟踪文件。
当开发人员拉取代码的新版本时,他运行
pip install -r requirements.txt
更新依赖项并在开发模式下安装项目。然后,使用上面的命令行,他编译翻译二进制 ( .mo
) 文件。
是否有一种简单且推荐的方式来修改setup.py
以一步完成这两项操作?还是我试图滥用setuptools
?
使用这样的脚本可以用于开发目的:
#!/bin/sh
./setup.py compile_catalog
pip install -r requirements.txt
但我想要一个在使用通常的setup.py
安装说明安装软件包时也能工作的解决方案,比如从 PyPi 安装。
我应该明白吗setuptools
不应该像这样使用,分发软件的人在创建档案时手动或使用自定义脚本编译他们的翻译文件,而不是依赖于setup.py
在安装时编译它们?
我在互联网上没有找到很多解决这个问题的帖子。我发现的那些涉及pybabel
从 中的函数运行命令行界面setup.py
,这听起来很可惜,因为它错过了 setuptools 集成的要点。