【发布时间】:2020-11-03 03:45:33
【问题描述】:
我有一个在 C++ 中实现反射以自动生成 Python 绑定的项目。目前,所有反映的内容都添加到 Python 中的单个模块中。但是,我希望能够创建一个 Python 包,因此我可以执行 import MyProject.Submodule 之类的操作,以避免在添加新类型时污染单个命名空间。
但是,使用the existing embedding/extending guide in Python,我只能创建单个模块。
我已经能够做到这样的事情:
// Create the MyProject module
PyObject *m = PyModule_Create(&module);
// Add the submodule to the MyProject module object
PyModule_AddObject(m, "submodule", CreateSubmodule);
但如果我这样做,import MyProject.submodule 将不会导入我的子模块,我必须使用 import MyProject 然后使用 MyProject.submodule 来引用子模块。
有没有办法从 Python 的 C API 定义与完全用 Python 定义的包一致的包?
【问题讨论】:
标签: python c python-3.x