使用 Boost.Python 创建的 Python 模块不会被导入

Python module created with Boost.Python won't be imported

本文关键字:Python 导入 Boost 创建 使用 模块      更新时间:2023-10-16

我有一个大的C++模块,使用Boost.Python的Python 3绑定,我在macOS上使用CMake编译成.so文件。

当我尝试在 REPL 中导入它时,一切似乎都正常:

>>>import myModule
>>>

然而,一旦我运行import语句,著名的 Python 火箭图标就会出现在码头上,并在那里跳跃几分钟,然后停止。显然,我无法访问模块中定义的任何函数,因此导入看起来不错,但实际上没有执行任何操作。

尝试在控制台中查找,发现每当我import myModule时,我都会得到两个launchservicesd[83]: SecTaskLoadEntitlements failed error=22。它把我带到了这个和那个相关的问题,但我找不到确切的问题是什么。

C++模块很大,所以我无法查看代码并找到问题,因此我要求至少有关如何调试该问题的任何提示。

我可以建议以下步骤:

  • 尝试通过本地 python 会话导入该模块。因此,运行交互式python解释器,并"导入myModule"。

如果损坏,请尝试检查:

  • 是python版本,与myMoudle链接,类似于使用的解释器
  • 检查构建架构是否相同
  • 检查您是否可以加载简单的 boost.python 示例模块

如果确定,请检查是否已在 python 代码中正确设置模块搜索路径。