gpt4 book ai didi

ubuntu - 无法从嵌入式 boost python 导入一些内置模块

转载 作者:行者123 更新时间:2023-12-04 18:48:53 24 4
gpt4 key购买 nike

我正在使用 boost::python 在我的 C++ 应用程序中运行 python 脚本.我收到错误:ModuleNotFoundError: No module named 'math' .一些内置模块可以工作,但有些不能。例如,import sys作品。
我验证了我有一个正常的 python 安装,并且当我从命令行运行 python 时,所有模块都正确导入。
我打印了 sys.path , sys.executable , sys.version , sys.builtin_module_names在嵌入式版本和命令行版本中,只有一个区别 - 从我的 C++ 可执行文件内部运行时,内置模块列表更短,缺少一些模块。
我错过了什么?

最佳答案

仅供引用,我遇到了完全相同的问题。
我在 RHEL 7 上运行并且正在构建一个共享库,它是复杂系统的一部分。在以下 4 个调用中,只有日历失败(返回 null):

PyObject* t1 = PyImport_ImportModule("calendar");
PyObject* t2 = PyImport_ImportModule("itertools");
PyObject* t3 = PyImport_ImportModule("appdirs");
PyObject* t4 = PyImport_ImportModule("cython");
在尝试了一大堆不同的模块/包之后,它似乎适用于 sys 和 itertools 等内置包,并且它适用于站点包中的模块(即站点包中的简单 .py 文件),但当你有一个完整的包...一个带有 的目录初始化 .py 文件
如果您将对 PyImport_ImportModule 的调用放在 try/catch block 中:

关于ubuntu - 无法从嵌入式 boost python 导入一些内置模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67131177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com