在 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] 作为 ./abcargv[1] 作为 pythonFileName.py

所以,请使用索引1。