如何将外部Python函数返回值设为pyproject.toml的version字段值
解决方法
要将版本生成函数移出__init__.py并保持pyproject.toml能正确读取版本,按以下步骤修改即可:
1. 迁移版本生成逻辑到新文件
在你的包目录下创建新文件(比如pkg1/_version.py),把get_version()函数和版本属性移到这个文件里:
def get_version(): # 你的版本生成逻辑 return "1.2.3" # 替换为实际的版本生成规则 __version__ = get_version()
2. 更新__init__.py(可选)
如果需要在包内通过pkg1.__version__直接访问版本号,在__init__.py中导入新文件的版本属性:
from ._version import __version__
3. 修改pyproject.toml的版本配置
更新[tool.setuptools.dynamic]下的version字段,指定版本属性所在的完整模块路径:
[tool.setuptools.dynamic] dependencies = {file = ["requirements.txt"]} readme = {file = ["README.md"], content_type="text/markdown"} version = {attr = "pkg1._version.__version__"}
这样setuptools在构建包时,会自动从pkg1._version模块读取__version__属性,完全适配你的需求。
内容的提问来源于stack exchange,提问作者tad
相关产品推荐
相关产品推荐

