PyPI包名规范化规则咨询:相似包名是否可上传?
PyPI包名重复判定问题解答
已有pkg_1时,pkg__1、pkg.1、pkg-1能上传吗?
不行。PyPI是通过规范化后的包名来判断是否重复的,规则遵循PEP 0503:
- 先把包名转成全小写
- 再把所有
.、_、-(包括这些符号的连续组合)替换成单个-
把这几个包名按规则处理:
pkg__1→ 转小写后是pkg__1,连续的_替换成-,结果是pkg-1pkg.1→ 转小写后是pkg.1,.替换成-,结果是pkg-1pkg-1→ 转小写后就是pkg-1,无需额外替换- 而已存在的
pkg_1规范化后也是pkg-1
这几个包的规范化名称和pkg_1的完全一致,PyPI会判定为同名包,拒绝上传。
a_.-b会被视为和a-b同名吗?
对的。按照规则处理a_.-b:
- 转小写:
a_.-b(本身已经是小写) - 把其中连续的
_、.、-组合替换成单个-,也就是把_.-这一串换成一个-,最终得到a-b,和a-b的规范化结果完全一样,所以PyPI会认定这两个是同名包。
内容的提问来源于stack exchange,提问作者Dante
相关产品推荐
相关产品推荐

