python - 使用 Setuptools (setup.py) 构建 Python 包时使用动态版本
问题描述
我们有一个大型遗留项目,其中包含一些 python 代码,项目中所有组件的版本是在运行时由构建项目的构建系统设置的。我们现在需要将 python 代码与其他组件使用的相同版本打包。
该软件包当前使用以下命令存档python setup.py bdist_wheel
,没有版本控制。
问题是我们如何在构建期间将动态版本传递给 setup.py 命令。就像是:
python setup.py --version x.x.x bdist_wheel
有几个选项可以覆盖版本文件,如version.py
或version.txt
使用新版本,然后在setup.py
文件中使用它,但假设我们不能在构建过程中添加更多步骤,只能修改构建命令和 python 文件怎么能完成了吗?
其他要求:
- 如果没有传递版本,则应使用默认值。
- 该版本应该在 python 代码中可用(例如将其作为
__version__
参数__init__.py
) - 如果可能的话,应该支持使用
setup.cfg
或pyproject.toml
用于元数据配置
解决方案
推荐阅读
- google-sheets - 我想在数组公式中使用这个查询
- for-loop - ifelse 并在 for 循环中返回
- java - 在 Java 8 流的 filter() 和 map() 中使用相同的变量
- html - 如何使单选按钮的轮廓更粗
- c++ - emplace_back 初始化列表错误,当初始化列表适用于独立变量时
- django - 未显示 HTML 页面
- typescript - aurelia中“未处理的承诺拒绝:TypeError”的可能原因是什么?
- mongodb - 查询文档的MongoDB时间戳
- c++ - 在 C++ 中找到 2 个数字的 gcd
- ignite - Apache Ignite 中大量关联调用的高效组合