繁体   English   中英

在C ++中嵌入python的编码

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

因此,请使用索引1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM