Я пытаюсь запустить Python, встроенный в простую программу на Си.Однако, когда я импортирую модуль, я получаю ошибку undefined symbol: PyUnicodeUCS2_DecodeUTF8
.
После дальнейшего изучения я обнаружил, что интерпретатор Python, запущенный под Py_Initialize();
, использует кодировку UCS-4, тогда как модуль, который я пытаюсь импортировать, использует кодировку UCS-2.Я спрашиваю, есть ли способ инициализировать интерпретатор Python с правильной кодировкой.Я использую систему Centos7 Linux, которая в основном использует USC2, и я не знаю, почему встроенный интерпретатор использует код USC-4
C: embed.c
#include <Python.h>
int main (int argc, char *argv[])
{
Py_Initialize();
pName = PyString_FromString(argv[1]); //get name of module to import
pModule = PyImport_Import(pName);
}
Python
print( __file__ + ": Encoding: " + str(sys.maxunicode)) #How I printed out the interpreter encoding which is 1114111
import torch
Makefile
gcc -I /usr/include/python2.7 embed.c -o embed -lpython2.7
Код компилируется, но я получаю это сообщение об ошибке: undefined symbol: PyUnicodeUCS2_DecodeUTF8
.