gpt4 book ai didi

python - Windows 上的 boost python 在导入 ("__main__"时崩溃);

转载 作者:行者123 更新时间:2023-12-05 07:58:20 27 4
gpt4 key购买 nike

我正在编写一个使用嵌入式 boost python 的程序。我的程序在 Linux Mint 上没有问题,但在 Windows 上却很痛苦。我正在使用 MingW,所以我尝试按照本网站上另一个问题的说明创建一个导入库。考虑到所有这些,程序编译和链接,动态 python34 和静态 boost python。虽然我的程序崩溃了,但我无法告诉我为什么,我跟随执行并停止在:“import(”ma​​in“);”

    // My python extensions
PyImport_AppendInittab("OpenGL", PyInit_OpenGL);
PyImport_AppendInittab("glm", PyInit_glm);
PyImport_AppendInittab("glfw", PyInit_glfw);
cout << "Initializing Python... ";
Py_Initialize();
cout << "done\n";
using namespace boost::python;
main_module = import("__main__"); // < crashes at this line
main_namespace = main_module.attr("__dict__");

神奇的是,我从我的 lib 搜索路径中删除了 libpython34.a,程序仍然构建良好,所以我认为问题可能不完全是 python 本身,但我不知道在哪里寻找问题。我无法获得有关发生的错误的任何详细信息,因为程序只是退出并且不打印任何内容,并且我有异常来捕获 error_already_set :/如果您真的有任何建议或任何事情,请分享,谢谢!

编辑:我构建了这个简单的 python hello world 嵌入式程序

    PyImport_ImportModule("__main__");
PyRun_SimpleString("from time import time,ctime\n"
"print('Today is',ctime(time())\n)");
Py_Finalize();

这完美地工作了。另一方面:

    boost::python::import("__main__");

导致无声崩溃。

最佳答案

我添加了Py_Initialize,崩溃问题解决了

Py_Initialize();
boost::python::object main = boost::python::import("__main__");

关于python - Windows 上的 boost python 在导入 ("__main__"时崩溃);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24986361/

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