首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法从嵌入式boost python导入某些内置模块

无法从嵌入式boost python导入某些内置模块
EN

Stack Overflow用户
提问于 2021-04-17 03:30:43
回答 1查看 53关注 0票数 1

我正在使用boost::python从我的C++应用程序中运行python脚本。我得到的错误是:ModuleNotFoundError: No module named 'math'。有些内置模块可以工作,但有些不能。例如,import sys可以工作。

当我从命令行运行python时,我验证了我有一个正常的python安装,并且所有模块都被正确导入。

我打印了嵌入式版本和命令行版本的sys.pathsys.executablesys.versionsys.builtin_module_names,只有一个区别--从我的C++可执行文件内部运行时,内置模块列表更短,缺少一些模块。

我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2021-08-23 15:04:31

仅供参考,我遇到了完全相同的问题。

我在RHEL 7上运行,正在构建一个共享库,它是一个复杂系统的一部分。在以下4个调用中,只有日历失败(返回null):

代码语言:javascript
运行
复制
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块中:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67131177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档