【发布时间】:2021-12-19 23:10:42
【问题描述】:
我想编写一个新的 Python 包,我想通过 PyPI 提供它。
过去我总是使用setup.py。但这次我决定拥抱新的
使用setup.cfg 的最佳实践
反而。所以我开始阅读一些文档,主要是
https://setuptools.pypa.io/en/latest/userguide/declarative_config.html.
我还决定使用pyscaffold 来生成文件。
pyscaffold 为我生成了一个 setup.cfg 文件,我添加了(仅用于测试
目的)version = 5.1.1 在metadata 部分下,如
上面的文档。
为方便起见,我使用 anaconda 并创建了一个新的空环境:
$ python --version
Python 3.9.7
$ pip list
...
PyScaffold 4.1.1
setuptools 58.4.0
setuptools-scm 6.3.2
wheel 0.37.0
但是当我执行pip install -e . 时,版本被忽略并且pip 分配了一个
不同的:
$ pip install -e .
Obtaining file:///tmp/test_package
Installing build dependencies ... done
Checking if build backend supports build_editable ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Installing collected packages: test-package
Attempting uninstall: test-package
Found existing installation: test-package 0.0.post1.dev10+g3ed39c8.d20211106
Uninstalling test-package-0.0.post1.dev10+g3ed39c8.d20211106:
Successfully uninstalled test-package-0.0.post1.dev10+g3ed39c8.d20211106
Running setup.py develop for test-package
Successfully installed test-package-0.0.post1.dev1+g228b46c
https://stackoverflow.com/a/27077610/1480131 提到 setuptools 版本
30.3.0 支持将元数据放入setup.cfg,我用的是58.4.0,这么多
更新的版本。
我还测试了不同的格式,比如version = file:VERSION.txt,但是
也没有帮助,pip 只是忽略了version 条目。
我错过了什么?我做错了什么?
我准备了一个带有文件的小型 git repo,以便能够重现 错误:https://github.com/shaoran/test_package 有没有人不一样 结果?
【问题讨论】:
标签: python pip setuptools