В моем коде на C++ выполняется интерпретатор python для чтения внешнего файла python, и я пытаюсь сделать C API приемлемым как для строк python 2, так и для python 3.Извлечь python str с C API, совместимый с python 2 & 3
Если python 2.7.11, я использую PyString_Check
и PyString_AsString
.
Если python 3.5.2, я использую PyUnicode_Check
и PyUnicode_AsUTF8String
.
Прежняя техника устарела в python 3.x.
Я ожидал, что последний будет совместим с обеими версиями. Однако PyUnicode_Check
возвращает false
под python 2 для аргумента типа str
. Кроме того, PyUnicode_AsUTF8String
дает ошибку сегментации в этом случае.
Что я делаю неправильно?