【发布时间】:2016-11-30 09:58:48
【问题描述】:
我的 c++ 代码运行 python 解释器来读取外部 python 文件,我正在尝试让 C API 接受 python 2 和 python 3 字符串。
如果是python 2.7.11,我使用PyString_Check和PyString_AsString。
如果是python 3.5.2,我使用PyUnicode_Check 和PyUnicode_AsUTF8String。
前一种技术在 python 3.x 中已弃用。
我希望后者兼容这两个版本。但是,PyUnicode_Check 在 python 2 下为 str 类型的参数返回 false。此外,PyUnicode_AsUTF8String 在这种情况下会出现分段错误。
我做错了什么?
【问题讨论】:
标签: string python-3.x python-2.x python-c-api python-unicode