错误:安装脚本退出并出现错误:命令“gcc”失败,退出状态为 1

Posted

技术标签:

【中文标题】错误:安装脚本退出并出现错误:命令“gcc”失败,退出状态为 1【英文标题】:error: Setup script exited with error: command 'gcc' failed with exit status 1 【发布时间】:2011-06-10 22:04:31 【问题描述】:

当我尝试在 Fedora 14 中的 Python 2.6 下安装 mysql-python-1.2.3 时出现以下错误。

Fedora 14 默认带有 Python 2.7,而我正在从事一个在 Python 2.6 中运行的项目,因此我无法将 Python 从 2.6 更新到 2.7。

_mysql.c:35:23: fatal error: my_config.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1

完整的错误信息如下

[root@localhost MySQL-python-1.2.2]# python setup.py build
running build
running build_py
creating build
creating build/lib.linux-i686-2.6
copying _mysql_exceptions.py -> build/lib.linux-i686-2.6
creating build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/__init__.py -> build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/converters.py -> build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/connections.py -> build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/cursors.py -> build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/release.py -> build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/times.py -> build/lib.linux-i686-2.6/MySQLdb
creating build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/__init__.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/CR.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/ER.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/FLAG.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/REFRESH.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/CLIENT.py -> build/lib.linux-i686-2.6/MySQLdb/constants
running build_ext
building '_mysql' extension
creating build/temp.linux-i686-2.6
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,2,'final',0) -D__version__=1.2.2 -I/usr/include/mysql -I/usr/local/include/python2.6 -c _mysql.c -o build/temp.linux-i686-2.6/_mysql.o -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -fasynchronous-unwind-tables -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv -fPIC -DUNIV_LINUX
_mysql.c:35:23: fatal error: my_config.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1
[root@localhost MySQL-python-1.2.2]# python2.6 setup.py build
running build
running build_py
copying MySQLdb/release.py -> build/lib.linux-i686-2.6/MySQLdb
running build_ext
building '_mysql' extension
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,2,'final',0) -D__version__=1.2.2 -I/usr/include/mysql -I/usr/local/include/python2.6 -c _mysql.c -o build/temp.linux-i686-2.6/_mysql.o -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -fasynchronous-unwind-tables -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv -fPIC -DUNIV_LINUX
_mysql.c:35:23: fatal error: my_config.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1

【问题讨论】:

【参考方案1】:

通过以下方式解决了这个问题

    将Python2.7的site-packages目录下的MySQLdb文件夹复制到Python2.6。

    同时将以下文件从 Python2.7 的 site-packages 目录复制到 Python2.6。

    _mysql.so

    _mysql_exceptions.py

    _mysql_exceptions.pyc

    _mysql_exceptions.pyo

现在试试下面的

>>> import MySQLdb  
>>> MySQLdb.__version__  
'1.2.3'

【讨论】:

【参考方案2】:

你需要安装 MySQL 开发包

​​>
yum install mysql-devel

【讨论】:

我在 Arch linux 中找不到 mysql-devel 包。 Arch 的 mysql-devel 叫什么名字? 用谷歌做快速检查,根据这个网站archlinux.org/packages/extra/x86_64/mysql-python它可能是libmariadbclient。我以前从未使用过arch-linux【参考方案3】:

安装 python-devel。这应该会有所帮助

【讨论】:

以上是关于错误:安装脚本退出并出现错误:命令“gcc”失败,退出状态为 1的主要内容,如果未能解决你的问题,请参考以下文章

安装 Reportlab(错误:命令“gcc”失败,退出状态为 1)

错误:安装 eventlet 时命令“gcc”失败,退出状态为 1

错误:安装 psycopg2 时命令“gcc”以退出状态失败

错误:命令“gcc”在 CentOS 上失败,退出状态为 1

src/gevent/libev/corecext.c:95:20:致命错误:Python.h 错误:命令“gcc”失败,退出状态为 1 [重复]

执行命令时代码构建失败并出现错误:npm install。原因:退出状态 127