gpt4 book ai didi

python - 使用 python3 错误 : 'PyString_AsString' was not declared in this scope 构建 cython 时出错

转载 作者:太空宇宙 更新时间:2023-11-04 10:26:27 25 4
gpt4 key购买 nike

我在 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 中的处理方式不同,所以对我来说,简单的解决方案是将 PyString_AsString(s) 替换为 s.encode('UTF-8')

关于python - 使用 python3 错误 : 'PyString_AsString' was not declared in this scope 构建 cython 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29109685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com