Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C++; 我使用Eclipse运行C++。在我的代码中,我使用Python的高级嵌入来运行函数。当我尝试使用sys并导入它时。我得到一个错误:_Python_C++_Unicode_Sys_Python Embedding - Fatal编程技术网

使用C++; 我使用Eclipse运行C++。在我的代码中,我使用Python的高级嵌入来运行函数。当我尝试使用sys并导入它时。我得到一个错误:

使用C++; 我使用Eclipse运行C++。在我的代码中,我使用Python的高级嵌入来运行函数。当我尝试使用sys并导入它时。我得到一个错误:,python,c++,unicode,sys,python-embedding,Python,C++,Unicode,Sys,Python Embedding,致命的Python错误:sys.argv没有mem 代码: #包括 #包括 #包括 #包括 #包括 使用名称空间std; int main(int argc,字符**argv) { Py_初始化(); PySys_SetArgv(argc,(wchar_t**)argv); PyRun_SimpleString(“导入系统”); Py_Finalize(); 返回0; } 当我从终端运行.exe时,我得到 ValueError:字符U+384d2f2e不在范围[U+0000;U+10ffff]

致命的Python错误:sys.argv没有mem

代码:

#包括
#包括
#包括
#包括
#包括
使用名称空间std;
int main(int argc,字符**argv)
{
Py_初始化();
PySys_SetArgv(argc,(wchar_t**)argv);
PyRun_SimpleString(“导入系统”);
Py_Finalize();
返回0;
}
当我从终端运行.exe时,我得到

ValueError:字符U+384d2f2e不在范围[U+0000;U+10ffff] 流产

在解决这个问题时,我们非常感谢您的帮助。
谢谢。

错误在于Python希望**argv指向一组unicode值。相反,argv指向chars

要解决这个问题:

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;
希望这对其他人有帮助

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;