我使用python3 -m build构建我的python包,就像官方文档:包装项目中所记录的那样。
但是我不想将我的版本号存储在源代码中,因为这会在git存储库中产生太多无用的更改。
是否有办法使version在setup.cfg中保持空,并通过python3 -m build命令行提供版本?
我使用推荐的pyproject.toml文件:
[build-system]
requires = [
"setuptools>=42",
"wheel"
]
build-backend = "setuptools.build_meta"Python中的相关问题:https://discuss.python.org/t/avoid-having-version-number-in-source-code/10188
发布于 2021-09-09 18:58:57
我找到了这个解决方案:
# setup.py
from setuptools import setup
import os
setup(version=os.environ.get('BUILD_VERSION'))像这样调用build:
BUILD_VERSION=... python3 -m build发布于 2021-09-06 21:04:49
我能得到的最接近的命令是使用类似于setuptools构建后端的以下命令:
python -m build \
--config-setting=--global-option=egg_info \
--config-setting=--global-option=--tag-build=SUFFIX这将向版本字符串添加一个后缀。
因此,如果在命令行中将版本字符串设置为1,在setup.cfg中将SUFFIX设置为.2.3,则将获得1.2.3。
这是一次黑客攻击,但似乎运作得很好。经以下测试:
不能保证它在可预见的将来将继续发挥作用。对于更长期的解决方案,也许值得关注和/或权衡一下这个setuptools特性请求。
参考资料
https://stackoverflow.com/questions/68838922
复制相似问题