【问题标题】:Python extension modules package structure (namespaces)Python 扩展模块包结构(命名空间)
【发布时间】:2016-10-27 12:34:28
【问题描述】:

我正在为我的 C++ 应用程序编写 Python 扩展模块。此外,我在同一个应用程序中嵌入了 Python 解释器并使用了这些模块。所以,我没有单独构建这些扩展模块,因为模块是在同一个应用程序中创建和使用的(只需在Py_Initialize() 之前添加PyImport_AppendInittab("modulename", &PyInit_modulename))。 如果我这样做,是否可以创建 Python 包结构? 目前,我有import module,但我需要有可能在我的嵌入式 Python 解释器中使用import package.module。 有没有什么可以创建包的,比如模块PyModule_Create()有一个函数?

【问题讨论】:

标签: python c++


【解决方案1】:

我的进一步研究表明,扩展模块中不可能有包结构。实际上,您可以使用一个简单的技巧创建结构,将模块添加到现有模块作为对象。例如,您可以创建这样的结构:mod1.mod2.mod3。但是,它不像包一样。您不能使用import mod1.mod2import mod1.mod2.mod3。您必须使用 import mod1,这将导入所有模块。无法只导入一个模块。

【讨论】:

    猜你喜欢
    • 2017-03-27
    • 2023-03-10
    • 2017-11-24
    • 2014-01-21
    • 2014-01-26
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多