【问题标题】:Is `versioneer` compatible with `PyPI` packaging?`versioneer` 与 `PyPI` 打包兼容吗?
【发布时间】:2021-02-17 21:38:51
【问题描述】:

我一直在使用versioneermy 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 不兼容还是我在这里遗漏了一些基本的东西?

【问题讨论】:

    标签: python pypi


    【解决方案1】:

    版本 0.0.1+25.g7c6a208.dirty 不是 PyPI 的有效版本号。这表明您的分发是在您的存储库在 0.0.1 标记之后进行 25 次提交时进行的,具有唯一的修订 ID g7c6a208 并且是“脏的”(它有未提交的更改)。

    您需要提交更改并制作0.0.2 标签以获取有效的版本号,然后才能上传到 PyPI。

    【讨论】:

    • 感谢您的快速回复。
    • 是否仍有可能上传到 TestPyPi?它似乎有相同的限制。但我只想在确保生成的包可以在 PyPi 上发布之后标记我的提交。
    • 不,抱歉。 TestPyPI 是一样的。
    【解决方案2】:

    您可以使用“pep440-pre”样式代替setup.cfg 中的“pep440”。这应该会为您生成类似0.0.1.post0.dev25 的内容,可以在上传到 pypi 时使用。

    【讨论】:

      猜你喜欢
      • 2015-08-26
      • 2021-06-10
      • 2015-08-09
      • 2018-08-27
      • 2011-12-31
      • 2020-03-19
      • 2018-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多