使用 pyproject.toml 时 setuptools 未获取动态版本

问题描述 投票:0回答:1

我将

setuptools
pyproject.toml
文件一起使用,并希望
setuptools
从包内容中动态获取包版本。相反,它始终将生成的文件名称中的包版本设置为
0.0.0
,即使包内的包版本看起来是正确的。我做错了什么?

MacOS 14.1.2(索诺玛)上的 Python 3.11.6
  • setuptools
  • 版本68.2.2
  • pip
  • 版本23.3.1
    
    
  • 封装结构:

. ├── LICENSE.md ├── README.md ├── invperc │   └── __init__.py └── pyproject.toml

    invperc/__init__.py
  • 仅包含此:
    
    
  • __version__ = "0.2.0"
    pyproject.toml
  • 仅包含此:
    
    
  • [project] name = "invperc" description = "Invasion Percolation" readme = "README.md" authors = [ { name = "Greg Wilson", email = "[email protected]" } ] license = { text = "MIT License" } dependencies = ["pandas", "numpy"] dynamic = ["version"] [build-system] requires = ["setuptools"] build-backend = "setuptools.build_meta" [tools.setuptools.dynamic] version = {attr = "invperc.__version__"}
命令:
  • python -m build
屏幕输出:
  • ...many lines... Successfully built invperc-0.0.0.tar.gz and invperc-0.0.0-py3-none-any.whl
  • dist/invperc-0.0.0.tar.gz

    dist/invperc-0.0.0-py3-none-any-whl
    现在存在,其中
    0.0.0
    作为版本号(这是不正确的)。
    
    

  • 但是如果我导入并检查:
  • $ cd /tmp $ pip install $HOME/invperc/dist/invperc-0.0.0-py3-none-any.whl $ python >>> import invperc >>> invperc.__version__ '0.2.0'

python setuptools pyproject.toml version-numbering
1个回答
0
投票
[email protected]

的回答:[tools.setuptools.dynamic]应该是

[tool.setuptools.dynamic]
,带有单数“工具”而不是复数“工具”。现在请原谅我因为没有任何警告信息而对着枕头尖叫......
    

© www.soinside.com 2019 - 2024. All rights reserved.