吐槽一下 pypi 的包名重名机制

2020-08-25 16:31:55 +08:00
 jenlors

有时候想制作一个 pypi 包并上传到 pypi 上,结果发现包名已经被占用了,更尴尬的是有可能原包根本就很久没维护了,以至于不得不换一个包名,很蛋疼。不知道为什么不像 github 一样弄一个命名空间之类的,也能有效的避免包名抢占之类的事情发生。

3313 次点击
所在节点    程序员
16 条回复
superrichman
2020-08-25 18:24:25 +08:00
因为这种方式不 pythonic 。
chenqh
2020-08-25 18:44:24 +08:00
可能历史遗留问题?
renmu123
2020-08-25 18:59:44 +08:00
中心化是这样的,好的包名被抢了又不维护就很让人生气,npm 也是如此
crella
2020-08-25 19:55:24 +08:00
apt 和 yum 都是这样的吧……?
LokiSharp
2020-08-25 20:13:02 +08:00
然后大家都抢命名空间了
TypeError
2020-08-25 20:14:23 +08:00
TypeError
2020-08-25 20:14:56 +08:00
@TypeError 果然有人抢注
aloxaf
2020-08-25 20:36:30 +08:00
很多中心化的包管理都这样

比如 crates.io ( Rust 的中心化包管理平台),就有人恶意批量注 crate 名称。
当初也讨论了很多,但是最终也没有一个好的解决方案。添加命名空间之类的东西,人家就会抢注命名空间;将命名空间与 GitHub 帐号绑定,又显得太过依赖单一平台……
iConnect
2020-08-25 20:37:57 +08:00
算是一种腐化表现?
CismonX
2020-08-25 20:48:26 +08:00
这点 GitHub 做的就比较好,有个 name squatting policy 。如果你发现有个用户名被长期占用但是又毫无作为,你可以向 GitHub 举报,确认后会将这个账号释放掉。
Darkside
2020-08-25 21:49:16 +08:00
@CismonX

补充一下,npm 也有类似的策略,可以在 https://www.npmjs.com/policies/disputes 的 Squatting 章节看到

不过 GitHub 和 npm 都是商业组织,而 PyPI 是 PSF 下面的非盈利组织,可能没有这么多工作人员
ClericPy
2020-08-25 22:14:50 +08:00
我反而挺不喜欢太长的包名... 挺多库的名字起的都挺有意思的, loguru, pydantic, 因为太常用, 所以强行记住了, 也不怕和其他语言重名(跨语言的时候搞混库的名字真的头疼)

然后, ichrome 名字也让我抢了, 随手搜了一把, 想把名字换了... 重名的也太多了, 早知道一开始就该起一个不容易重名但是有创意的

PEP 541 -- Package Index Name Retention | Python.org - https://www.python.org/dev/peps/pep-0541/

Abandoned projects
A project is considered abandoned when ALL of the following are met:

owner not reachable (see Reachability above);
no releases within the past twelve months; and
no activity from the owner on the project's home page (or no home page listed).
ruanimal
2020-08-26 09:41:10 +08:00
pypi 包名重名都不是事,两个包的实际包名(文件夹名称)一样才是神坑,比如 enum 和 enum34
SmiteChow
2020-08-26 10:09:08 +08:00
换个名字易如反掌
yiyi11
2020-08-26 11:58:35 +08:00
@TypeError 别尬黑,川普入驻 v2 了
Kobayashi
2020-08-26 20:01:42 +08:00
包名不能重名,但 import 时名字可以一样啊。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/701331

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX