如标题,使用pip install thriftpy2安装时提示失败了。
488 #15 26.81 thriftpy2/transport/cybase.c: In function ‘__Pyx_PyCode_New’:
489 #15 26.81 thriftpy2/transport/cybase.c:11603:5: error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode
490 #15 26.81 for (Py_ssize_t i=0; i < var_count; i++) {
491 #15 26.81 ^
492 #15 26.81 error: command '/usr/bin/gcc' failed with exit code 1
493 #15 26.81 [end of output]
494 #15 26.81
495 #15 26.81 note: This error originates from a subprocess, and is likely not a problem with pip.
496 #15 26.81 ERROR: Failed building wheel for thriftpy2
497 #15 26.81 Successfully built bytedlogger bytedmemfd bytedmysql bytedtcc bytedtrace bytedztispiffe python-etcd
498 #15 26.81 Failed to build thriftpy2
499 #15 26.81 ERROR: Could not build wheels for thriftpy2, which is required to install pyproject.toml-based projects
仔细看了一下是编译时出错,按照这个错误搜索了一下,进行了常规处理,即升级了pip版本、安装了编译环境,都没能解决问题。
又仔细看了一下,在错误中发现了这一句error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode,发现这可能是个语法问题,查了一下发现是gcc编译这个程序时需要使用C99 或 C11标准来进行编译,而目前默认没有使用这两个标准。
又仔细查了一下,改变默认编译标准的代码很简单,在当前shell中执行 export CFLAGS="-std=c99" 即可,执行完成后在当前的shell中再执行安装程序就正常编译了
所以,我们应该认真阅读报错信息。