jbe*_*net 9 python setuptools namespace-package
这个问题跟进在Python中创建命名空间包的方法以及如何在Python中创建命名空间包?.
您不能在命名空间包中包含任何其他代码和数据
__init__.py.尽管它可能在开发期间或项目作为.egg文件安装时起作用,但在使用"系统"打包工具安装项目时它将无法工作 - 在这种情况下,__init__.py文件将不会被安装,更不用说执行了.
这似乎使得无法拥有一个带有独立分布式扩展子包的"主库"包.我想要的是能够:
定义一个核心库包,使用如下:
import mylibrary
mylibrary.some_function()
Run Code Online (Sandbox Code Playgroud)允许库扩展,单独打包和分发,使用如下:
import mylibrary.myextension
mylibrary.myextension.some_other_function()
Run Code Online (Sandbox Code Playgroud)我希望能够使用命名空间包来实现这一点,但基于上面的问题和链接,似乎并非如此.这可以完成吗?
小智 4
确实不可能在__init__.pyPEP 420 命名空间包的顶层包含代码。
如果我是你,我会:
我个人会使用选项 1。
PEP 420 的基本原理部分解释了为什么__init__.py不能包含任何代码。
| 归档时间: |
|
| 查看次数: |
559 次 |
| 最近记录: |