You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pyproject.toml时setuptools无法获取动态版本问题排查

问题原因

python -m build默认启用隔离构建模式,在这个模式下,构建环境仅包含pyproject.toml中[build-system]指定的依赖(这里只有setuptools),无法访问本地的invperc模块。当setuptools尝试读取invperc.__version__失败时,会自动 fallback 到默认版本号0.0.0,导致生成的分发文件名称版本错误。而安装后包内的__init__.py正常包含版本信息,因此导入时能获取正确的0.2.0。

解决方案

方案一:禁用隔离构建

执行build命令时添加--no-isolation参数,让构建过程使用当前环境的依赖并访问本地模块:

python -m build --no-isolation

这样setuptools就能正确读取invperc.__version__,生成版本号为0.2.0的分发文件。

方案二:使用setuptools-scm自动管理版本(可选)

如果希望基于Git标签自动生成版本号,避免手动维护__version__,可以使用setuptools-scm:

  1. 修改pyproject.toml的构建依赖和动态版本配置:
[build-system]
requires = ["setuptools", "setuptools-scm"]
build-backend = "setuptools.build_meta"

[project]
dynamic = ["version"]

[tools.setuptools.dynamic]
version = {scm = true}
  1. 确保项目是Git仓库,并且已打上对应版本标签(例如v0.2.0),执行python -m build即可自动生成对应版本的分发文件。

内容的提问来源于stack exchange,提问作者Greg Wilson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 15:25:01