我们从Python开始,似乎我们会有很多我们不会开源的软件包,但是想要命名它们,因为它们会有routine
或log
等常用名称。
在C#中,通常使用company \ opensource基础名称为库的名称空间加前缀,或者在ActionScript创建名称空间中通过反转url:com.example.project1.routine
。
据我所知,Python包并不打算用作命名空间,而且包树很平,所以它的方式是什么?
答案 0 :(得分:3)
似乎没有一条规则。
某些公司将其身份识别作为其所有套餐的前缀,例如'zope'(见their packages on PyPI)或'集体'(谁是一群贡献者而非公司; 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提供了这些有用的指示!