是否可以在Cython扩展中使用嵌套包(又名子目录),如果可以,我应该如何做
Cython似乎不允许顶级包之外的相对导入/cimport。假设我有以下Cython项目结构:
/lib_interface.pyx
/lib_interface.pxd // the top level source files
/submodule/__init__.pxd
/submodule/submodule_code.pyx
/submodule/submodule_code.pxd
让我们假设我们得到的Cython库被称为SomeLib,因此在Python中,我希望这样做: 从SomeLib.submodule导入SomeClass
但这会导致错误,即“SomeLib.submodule”不是一个包
我试着将子模块导入lib_interface.pxd,但没有效果
如果您想将内容导入到另一个Cython模块中,则需要在每个目录中使用
__init__.pxd
。如果还想将其导入Python,请在每个级别添加通常的__init__.py
。因此,您的目录结构如下所示:这在子模块目录下的
__init__.py
中:现在您应该可以将其作为
from somelib.submodule import MyClass
导入相关问题 更多 >
编程相关推荐