[英]Encoding for embedding python in C++
我试图将python代码嵌入C ++,并且编译成功,但是当我尝试运行代码时,出现以下错误。
File "./cppPython", line 1
SyntaxError: Non-ASCII character '\x88' in file ./cppPython on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
这些是我的C ++和Python代码。
CPP代码
#include <Python.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
FILE *fp = fopen(argv[0],"r");
Py_SetProgramName(argv[0]); /* optional but recommended */
Py_Initialize();
PyRun_SimpleFileExFlags(fp,argv[0],0,NULL);
Py_Finalize();
return 0;
}
Python代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print "hello"
您正在将可执行文件作为Python代码运行,而事实并非如此。 验证fopen()
和PyRun_SimpleFileExFlags()
。
argv[0]
给出C ++可执行文件的名称。 例如。 如果将C ++可执行文件命名为abc
并执行为:
./abc pythonFileName.py
然后, argv
数组将argv[0]
作为./abc
和argv[1]
作为pythonFileName.py
。
因此,请使用索引1。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.