我想知道是否有办法使用纯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文件,但是这个替代方案并不尊重包层次结构。
非常感谢任何帮助
答案 0 :(得分:0)
您可以在代码中创建module
个对象;见this question
您可以使用include
,然后在代码中创建模块对象。这应该允许您导入子包。如果您有一个可行的解决方案,请在此处发布。这将是一个巧妙的技巧。
了解为什么要将模块用作命名空间而不是比如命名空间的类,这也很有趣,这些类可以立即使用,并且可以通过调用代码为您提供非常类似的API。