gpt4 book ai didi

python - Python 中包的供应商命名空间

转载 作者:太空宇宙 更新时间:2023-11-04 01:18:16 24 4
gpt4 key购买 nike

我们从 Python 开始,似乎我们将有很多我们不会开源的包,但想给它们命名空间,因为它们会有像 routinelog 这样的通用名称

这就像在 C# 中,通常在库的 namespace 前加上 company\opensource foundation 名称,或者在 ActionScript 中通过反转 url 创建 namespace :com.example.project1.routine

据我所知,Python 包并不打算用作命名空间,而且包树非常扁平,所以怎么办?

最佳答案

似乎没有一个单一的规则。

一些公司将他们的标识作为他们所有包裹的前缀,例如'zope'(参见 their packages on PyPI )或 'collective'(一群贡献者而非公司;here are their packages )。

另一种方法是将您的包命名为“yourcompany_package”,并带有下划线。 “金字塔”项目 does that , 和 'sphinx' 贡献者混合使用下划线、连字符和其他符号来 build the identifier .

因此,您可以自由选择;但使用“反向 URL”方法确实非常不常见:它太像 Java 了。 :)

编辑:

有一个setuptools 机制可以使zope.interface 命名自动工作,称为namespace_packages。 .在您的 setup.py 中使用此关键字将防止您的公司引入手动错误。

在 Python 3.3 或更高版本中,通过省略包文件夹中的传统 __init__.py 文件(然后变成命名空间包;详情请参阅 PEP 420)可以隐式地完成相同的操作。 )

感谢@eryksun 提供这些有用的指导!

关于python - Python 中包的供应商命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22984339/

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