我将
setuptools
与 pyproject.toml
文件一起使用,并希望 setuptools
从包内容中动态获取包版本。相反,它始终将生成的文件名称中的包版本设置为 0.0.0
,即使包内的包版本看起来是正确的。我做错了什么?
MacOS 14.1.2(索诺玛)上的 Python 3.11.6setuptools
pip
.
├── 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'
的回答:[tools.setuptools.dynamic]
应该是
[tool.setuptools.dynamic]
,带有单数“工具”而不是复数“工具”。现在请原谅我因为没有任何警告信息而对着枕头尖叫......