使用python包中的cython创建单个pyd,保持包层次结构

时间:2015-12-15 20:05:38

标签: python cython

我想知道是否有办法使用纯Python包中的cython创建单个.pyd来保持包层次结构。

我的意思是如果包名是A并且里面有模块B和C(带有各自的文件夹和init文件)

A/
----> __init__py
----> A.py
----> B/
      ----> __init__.py
      ----> B.py
      ----> something.py
----> C/
      ----> __init__.py
      ----> C.py

我可以生成一个允许我做

之类的A.pyd文件吗?
import A.C
import A.B.something

此时我知道我可以使用.pyx文件和include语句获取单个pyd文件,但是这个替代方案并不尊重包层次结构。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

您可以在代码中创建module个对象;见this question

您可以使用include,然后在代码中创建模块对象。这应该允许您导入子包。如果您有一个可行的解决方案,请在此处发布。这将是一个巧妙的技巧。

了解为什么要将模块用作命名空间而不是比如命名空间的类,这也很有趣,这些类可以立即使用,并且可以通过调用代码为您提供非常类似的API。