我一直在使用versioneer来控制my package的版本,目前正在尝试将其上传到PyPI。但是,运行时出现以下错误
python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
Uploading distributions to https://test.pypi.org/legacy/
Uploading xomega-0.0.1+25.g7c6a208.dirty-py3-none-any.whl
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████| 11.5k/11.5k [00:00<00:00, 22.5kB/s]
NOTE: Try --verbose to see response content.
HTTPError: 400 Client Error: '0.0.1+25.g7c6a208.dirty' is an invalid value for Version. Error: Can't use PEP 440 local versions. See https://packaging.python.org/specifications/core-metadata for url: https://test.pypi.org/legacy/
由versioneer
自动分配的版本号是否与PyPI
不兼容,或者我在这里缺少基本内容吗?
答案 0 :(得分:3)
版本0.0.1+25.g7c6a208.dirty
不是PyPI的有效版本号。它表明您的分发是在您的存储库在0.0.1
标记之后提交25次提交,具有唯一的修订ID g7c6a208
且为“脏”(未提交更改)时进行的。>
您需要先进行更改并制作一个0.0.2
标签以获取有效的版本号,然后才能上传到PyPI。
答案 1 :(得分:1)
您可以将“pep440-pre”样式用于 versioneer 而不是 setup.cfg
中的“pep440”。这应该为您生成类似 0.0.1.post0.dev25
的内容,可用于上传到 pypi。