致命错误:在执行“pip install mysql-python”后生成 #include <stdio.h>

2 投票
1 回答
6841 浏览
提问于 2025-04-17 23:36

和很多人一样,我在让mysql和python一起工作时遇到了问题。我的系统配置是:

操作系统:OSX10.9.2
Anaconda 1.9.1,使用的是python 2.7.2,虽然2.5和2.6似乎也包含在内
MySQL 5.6.16

我写了一个python脚本,试图导入MySQLdb或者先导入PyMySQL再导入MySQLdb,但都不成功。

我在Stack Overflow上看了很多讨论,最后我尝试了以下命令:

$ export CFLAGS=-Qunused-arguments
$ export CPPFLAGS=-Qunused-arguments
$ pip install mysql-python

结果如下。可以看到,输出的底部出现了一个致命错误。

正在下载/解压mysql-python
下载MySQL-python-1.2.5.zip (108kB):已下载108kB
运行setup.py(路径:/private/var/folders/lx/h7jq_qx92_j0n7plsjmr6wl40000gp/T/pip_build_vincent/mysql-python/setup.py)为mysql-python包生成egg_info

正在安装收集的包:mysql-python
运行setup.py安装mysql-python
正在构建'_mysql'扩展
/usr/bin/clang -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Qunused-arguments -Qunused-arguments -Dversion_info=(1,2,5,'final',1) -D_version_=1.2.5 -I/usr/local/mysql/include -I/Users/vincentlaufer/anaconda/include/python2.7 -c _mysql.c -o build/temp.macosx-10.5-x86_64-2.7/_mysql.o -Os -g -fno-strict-aliasing -arch x86_64
在包含的文件中,_mysql.c:29:
/Users/vincent/anaconda/include/python2.7/Python.h:33:10: 致命错误:找不到'stdio.h'文件
#include
^
1个错误生成。
错误:命令'/usr/bin/clang'以退出状态1失败
从命令/Users/vincentlaufer/anaconda/bin/python -c "import setuptools, tokenize;file='/private/var/folders/lx/h7jq_qx92_j0n7plsjmr6wl40000gp/T/pip_build_vincent/mysql-python/setup.py';exec(compile(getattr(tokenize, 'open', open)(file).read().replace('\r\n', '\n'), file, 'exec'))" install --record /var/folders/lx/h7jq_qx92_j0n7plsjmr6wl40000gp/T/pip-6aqGYj-record/install-record.txt --single-version-externally-managed --compile的完整输出:

正在运行安装

正在运行构建

正在运行build_py

创建构建

创建build/lib.macosx-10.5-x86_64-2.7

复制_mysql_exceptions.py -> build/lib.macosx-10.5-x86_64-2.7

创建build/lib.macosx-10.5-x86_64-2.7/MySQLdb

复制MySQLdb/init.py -> build/lib.macosx-10.5-x86_64-2.7/MySQLdb

复制MySQLdb/converters.py -> build/lib.macosx-10.5-x86_64-2.7/MySQLdb

复制MySQLdb/connections.py -> build/lib.macosx-10.5-x86_64-2.7/MySQLdb

复制MySQLdb/cursors.py -> build/lib.macosx-10.5-x86_64-2.7/MySQLdb

复制MySQLdb/release.py -> build/lib.macosx-10.5-x86_64-2.7/MySQLdb

复制MySQLdb/times.py -> build/lib.macosx-10.5-x86_64-2.7/MySQLdb

创建build/lib.macosx-10.5-x86_64-2.7/MySQLdb/constants

复制MySQLdb/constants/init.py -> build/lib.macosx-10.5-x86_64-2.7/MySQLdb/constants

复制MySQLdb/constants/CR.py -> build/lib.macosx-10.5-x86_64-2.7/MySQLdb/constants

复制MySQLdb/constants/FIELD_TYPE.py -> build/lib.macosx-10.5-x86_64-2.7/MySQLdb/constants

复制MySQLdb/constants/ER.py -> build/lib.macosx-10.5-x86_64-2.7/MySQLdb/constants

复制MySQLdb/constants/FLAG.py -> build/lib.macosx-10.5-x86_64-2.7/MySQLdb/constants

复制MySQLdb/constants/REFRESH.py -> build/lib.macosx-10.5-x86_64-2.7/MySQLdb/constants

复制MySQLdb/constants/CLIENT.py -> build/lib.macosx-10.5-x86_64-2.7/MySQLdb/constants

正在运行build_ext

正在构建'_mysql'扩展

创建build/temp.macosx-10.5-x86_64-2.7

/usr/bin/clang -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Qunused-arguments -Qunused-arguments -Dversion_info=(1,2,5,'final',1) -D_version_=1.2.5 -I/usr/local/mysql/include -I/Users/vincent/anaconda/include/python2.7 -c _mysql.c -o build/temp.macosx-10.5-x86_64-2.7/_mysql.o -Os -g -fno-strict-aliasing -arch x86_64

在包含的文件中,_mysql.c:29:
/Users/vincent/anaconda/include/python2.7/Python.h:33:10: 致命错误:找不到'stdio.h'文件

include stdio.h

     ^

1个错误生成。

错误:命令'/usr/bin/clang'以退出状态1失败


正在清理...
命令/Users/vincent/anaconda/bin/python -c "import setuptools, tokenize;file='/private/var/folders/lx/h7jq_qx92_j0n7plsjmr6wl40000gp/T/pip_build_vincent/mysql-python/setup.py';exec(compile(getattr(tokenize, 'open', open)(file).read().replace('\r\n', '\n'), file, 'exec'))" install --record /var/folders/lx/h7jq_qx92_j0n7plsjmr6wl40000gp/T/pip-6aqGYj-record/install-record.txt --single-version-externally-managed --compile失败,错误代码为1,位于/private/var/folders/lx/h7jq_qx92_j0n7plsjmr6wl40000gp/T/pip_build_vincent/mysql-python
将调试日志存储在/Users/vincentlaufer/.pip/pip.log中

我想感谢大家提供的许多答案,让我走到了这一步,但也想问问有没有人知道如何解决这个问题。谢谢大家!!

1 个回答

7

在代码中加入这一行:

$ xcode-select --install 

可以解决这个问题,具体可以参考这个链接:GCC致命错误:找不到stdio.h文件

撰写回答