在 C++ 中嵌入 python 的编码
Encoding for embedding python in C++
我试图在 C++ 中嵌入一个 python 代码并且它编译成功但是当我尝试 运行 我的代码时,我得到以下错误。
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 code
#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 code
#!/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。
我试图在 C++ 中嵌入一个 python 代码并且它编译成功但是当我尝试 运行 我的代码时,我得到以下错误。
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 code
#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 code
#!/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。