Error building cython with python3 error: 'PyString_AsString' was not declared in this scope

Error building cython with python3 error: 'PyString_AsString' was not declared in this scope

我在 python 3 中使用 cython 编译 c 扩展时遇到问题。它在 python 2.7 中编译并工作正常,但在 python 3.4.3 中我得到以下错误使用 3.4(anaconda 发行版)构建时:

python setup.py build_ext --inplace
running build_ext
building 'module' extension
gcc -pthread -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Iincludes -I/home/user/anaconda/include/python3.4m -c module.cpp -o build/temp.linux-x86_64-3.4/module.o
cc1plus: warning: command line option "-Wstrict-prototypes" is valid for Ada/C/ObjC but not for C++
rawdata.cpp: In function ‘int __pyx_pf_7rawdata_13RawDataReader___cinit__(__pyx_obj_7rawdata_RawDataReader*, PyObject*, int, int)’:
rawdata.cpp:852: error: ‘PyString_AsString’ was not declared in this scope 
error: command 'gcc' failed with exit status 1

问题是我的大部分其他模块都是为 3.4 编写的,所以继续使用 2.7 并不是一个真正的选择。

知道如何解决这个问题吗?

所以事实证明 python 字符串在 python 3 中的处理方式不同所以对我来说简单的解决方案是用 s.encode('UTF-8')[=12= 替换 PyString_AsString(s) ]