You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pybind11在C++中导入Python模块时程序无响应,无法继续执行

使用pybind11在C++中导入Python模块时程序无响应,无法继续执行

这段代码是我一个注册页面wxFrame的一部分,我想从C++中运行Python代码,根据Python文件的输出来切换窗口。

(我用了namespace pb = pybind11;,这样只需要用pb就能指代pybind11)

我做了些调试,发现是下面这行代码出了问题:

pb::module python_module = pb::module::import("python_functions");

程序没有返回错误,就是直接停在这里不继续执行了。

我花了一整天时间尝试修复这个bug,现在已经没思路了。Python文件名是对的,文件和VS项目在同一个目录里,我也修改了很多PATH设置来让C++能调用Python解释器(说不定我漏了什么?)

我单独测试过Python代码,完全能正常运行,所以问题肯定不在Python上,就是上面那行代码的问题。下面是完整的相关代码:

std::string python_username_input = input_values[0].ToStdString();
                                                                    // convert the inputs into a string that Python can interpret
std::string python_password_input = input_values[1].ToStdString();

pb::scoped_interpreter guard{};

pb::module sys = pb::module::import("sys");       // Import sys module

sys.attr("path").attr("append")("[DIRECTORY TO FILE]");

pb::module python_module = pb::module::import("python_functions");

pb::object python_result = python_module.attr("SignUp")(python_username_input, python_password_input, check_values[0]);

任何帮助都很感激,这是我的项目需求,我真的得把这个问题解决。如果需要更多上下文或代码才能排查问题,请告诉我。会不会是我少包含了某个库?我已经包含了#include <pybind11/embed.h>,难道还漏了别的?

无论如何,感谢任何回复。


备注:内容来源于stack exchange,提问作者Calax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:05:29