在使用了十多年的专有打包方法后,我现在才开始涉足 python 打包。
我有一个数据文件,用于生成 python 代码,该代码是我在 Windows 和 Linux 上运行的包的一部分。我正在尝试将它集成到我的构建过程(tox / TravisCI)中,以生成我的包并上传到 PyPI。尽管生成器是用 python 编写的,但可以将数据文件视为类似于.proto
protobuf 的文件。
我想过但拒绝的选项
- 通过在导入时读取数据文件动态创建对象
- 缺点:更难调试构建过程,因为您无法阅读代码
- 缺点:限制了静态分析的用处(flake8、mypy)
- 检查生成的代码(我目前所做的)
- 缺点:更多的手动步骤意味着更多的出错机会
- 缺点:贡献者缺少代码生成并修改生成的输出
理想情况下,我们的任何 Windows 或 Linux 用户都可以轻松掌握该解决方案,以消除回馈障碍。