V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jenlors
V2EX  ›  程序员

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

  •  
  •   jenlors · 2020-08-25 16:31:55 +08:00 · 3480 次点击
    这是一个创建于 1554 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    不过 GitHub 和 npm 都是商业组织,而 PyPI 是 PSF 下面的非盈利组织,可能没有这么多工作人员
    ClericPy
        12
    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
        13
    ruanimal  
       2020-08-26 09:41:10 +08:00
    pypi 包名重名都不是事,两个包的实际包名(文件夹名称)一样才是神坑,比如 enum 和 enum34
    SmiteChow
        14
    SmiteChow  
       2020-08-26 10:09:08 +08:00
    换个名字易如反掌
    yiyi11
        15
    yiyi11  
       2020-08-26 11:58:35 +08:00 via Android
    @TypeError 别尬黑,川普入驻 v2 了
    Kobayashi
        16
    Kobayashi  
       2020-08-26 20:01:42 +08:00 via Android
    包名不能重名,但 import 时名字可以一样啊。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3199 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:25 · PVG 21:25 · LAX 05:25 · JFK 08:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.