致命错误:在执行“pip install mysql-python”后生成 #include <stdio.h>
和很多人一样,我在让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中
我想感谢大家提供的许多答案,让我走到了这一步,但也想问问有没有人知道如何解决这个问题。谢谢大家!!