gpt4 book ai didi

python - 为 Python 包使用日历版本控制

转载 作者:太空宇宙 更新时间:2023-11-03 15:34:57 24 4
gpt4 key购买 nike

与语义方法相比,我更喜欢日历版本控制方案(参见 calver.org)。但是当我在 Python 包中使用日历版本控制时,PyPI 会删除月份中的零填充。例如,在 setup.py 中,如果版本号声明为 version='19.03',则 PyPI 将包托管为 19.3(无零填充)。

有没有办法强制 PyPI 确认补零的月份,或者 Python 包是否不支持 YYYY.0M 方案?

最佳答案

是的,这是可能的。问题不是 PyPI,而是方式 setuptools在构建分发时规范化版本号。

就拿这个简单的setup.py它定义了一个最小包:

from setuptools import setup

setup(
name='calver-test',
version='2019.03.29',
packages=[],
)

如果你运行 python setup.py sdist , 这将产生一个文件 calver-test-2019.3.29.tar.gz具有以下结构:

calver-test-2019.3.29
├── PKG-INFO
├── calver_test.egg-info
│   ├── PKG-INFO
│   ├── SOURCES.txt
│   ├── dependency_links.txt
│   └── top_level.txt
├── setup.cfg
└── setup.py

如果您手动解压 tar.gz文件,修改 2019.3.29 的出现至 2019.03.29PKG-INFO文件,并将其重新打包到名为 calver-test-2019.03.29.tar.gz 的文件中,并将其上传到 PyPI,它将保留零填充。

此处示例:https://pypi.org/project/calver-test/2019.03.29/

如果这是您的预期行为,显然这个过程并不理想,因此在 setuptools issue tracker 上打开一个问题也许是有意义的.

关于python - 为 Python 包使用日历版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55409228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com