Mein C++ - Code führt einen Python-Interpreter zum Lesen einer externen Python-Datei, und ich versuche, die C-API beide Python 2 und Python 3 Zeichenfolgen akzeptieren.Extrahieren Sie eine Python-Str mit C-API, kompatibel mit Python 2 & 3
Wenn Python 2.7.11, verwende ich PyString_Check
und PyString_AsString
. Wenn Sie Python 3.5.2 verwenden, verwende ich PyUnicode_Check
und PyUnicode_AsUTF8String
.
Die frühere Technik ist in Python 3.x veraltet.
Ich erwartete, dass letzteres zu beiden Versionen kompatibel ist. PyUnicode_Check
gibt jedoch false
unter Python 2 für ein Argument vom Typ str
zurück. Außerdem gibt PyUnicode_AsUTF8String
einen Segmentierungsfehler in diesem Fall.
Was mache ich falsch?