gpt4 book ai didi

python - 从 Python Embedded in C++ 使用 sys 时出错

转载 作者:搜寻专家 更新时间:2023-10-31 02:14:40 26 4
gpt4 key购买 nike

我正在使用 Eclipse 运行 C++。在我的代码中,我使用 Python 的高级嵌入来运行函数。当我尝试使用 sys 并将其导入时。我收到错误:

致命的 Python 错误:没有用于 sys.argv 的内存

代码:

#include <python3.4m/Python.h>
#include <iostream>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main(int argc, char **argv)
{

Py_Initialize();
PySys_SetArgv(argc, (wchar_t**)argv);
PyRun_SimpleString("import sys\n");
Py_Finalize();
return 0;
}

当我从终端运行 .exe 时,我得到了

ValueError:字符 U+384d2f2e 不在范围 [U+0000; U+10ffff]已中止

在解决此问题时,我们将不胜感激。谢谢。

最佳答案

错误是 Python 期望 **argv 指向一组 unicode 值。相反,argv 指向字符。

解决这个问题:

wchar_t **wargv;
wargv = (wchar_t**)malloc(1*sizeof(wchar_t *));
*wargv = (wchar_t*)malloc(6*sizeof(wchar_t));
**wargv = L'argv1';

Py_Initialize();
PySys_SetArgv(1, (wchar_t**)wargv);
PyRun_SimpleString("import sys\n"
"print('test')\n");
Py_Finalize();
return 0;

希望这对其他人有帮助。

关于python - 从 Python Embedded in C++ 使用 sys 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39644907/

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