首页 > 解决方案 > PyPi 拒绝版本值

问题描述

我正在尝试将包上传到 pypi 并收到错误:

“4.5.1-2021.2-0”是版本的无效值。错误:以仅包含 ASCII 数字和“.”、“_”和“-”的字母或数字开头和结尾。有关更多信息,请参阅https://packaging.python.org/specifications/core-metadata

我知道我的名字不符合PEP440,但它匹配 PyPi 值格式。奇怪,它代替_-

来自setup.py

setuptools.setup(
    name="opencv-python-inference-engine",
    version="4.5.1_2021.2_0",
...

包文件名:opencv_python_inference_engine-4.5.1_2021.2_0-py3-none-manylinux1_x86_64.whl

我做错了什么,除了 PRP440 合规性?

UPD: “4.5.1-2021.2”也会产生错误,但它看起来符合 PEP440(预发布分隔符)。

标签: pythonpipuploadpypi

解决方案


您的版本不符合 PEP440。预发布版本必须包含预发布“阶段”(alpha、beta、候选发布)。

预发布段由预发布阶段的字母标识符和非负整数值组成。给定版本的预发布首先按阶段(alpha、beta、候选版本)排序,然后按该阶段内的数字组件排序。

X.YaN   # Alpha release
X.YbN   # Beta release
X.YrcN  # Release Candidate
X.Y     # Final release

对于 alpha 这意味着字母a,对于 beta 这意味着字母b,对于 Release Candidate,您需要rc。将破折号更改为ab,我认为它会起作用。


推荐阅读