【发布时间】:2013-01-02 08:26:19
【问题描述】:
此问题跟进The way to make namespace packages in Python 和How do I create a namespace package in Python?。
注意PEP 420和distribute docs,其中状态:
您不得在命名空间包的
__init__.py中包含任何其他代码和数据。即使它在开发过程中似乎可以工作,或者当项目安装为.egg文件时,当使用“系统”打包工具安装项目时,它将无法工作——在这种情况下,__init__.py文件将不会被安装,更别说被处决了。
这一切似乎使得不可能有一个带有独立分布的扩展子包的“主库”包。我想要的是能够:
-
定义一个核心库包,这样使用:
import mylibrary mylibrary.some_function() -
允许像这样使用单独打包和分发的库扩展:
import mylibrary.myextension mylibrary.myextension.some_other_function()
我本来希望能够使用命名空间包来做到这一点,但根据上面的问题和链接,情况似乎并非如此。这能做到吗?
【问题讨论】:
-
我仍然无法相信现代 Python 仍然如此。它确实使得在命名空间包中为方便定义核心部分变得相当“困难”:/
标签: python setuptools namespace-package