错误:命令'gcc'安装eventlet时退出状态1失败

我想在我的系统上安装eventlet,以便有“Herd”进行软件部署。但是终端显示GCC错误:

  root@agrover-OptiPlex-780:~# easy_install -U eventlet
Searching for eventlet
Reading http://pypi.python.org/simple/eventlet/
Reading http://wiki.secondlife.com/wiki/Eventlet
Reading http://eventlet.net
Best match: eventlet 0.9.16
Processing eventlet-0.9.16-py2.7.egg
eventlet 0.9.16 is already the active version in easy-install.pth


Using /usr/local/lib/python2.7/dist-packages/eventlet-0.9.16-py2.7.egg
Processing dependencies for eventlet
Searching for greenlet>=0.3
Reading http://pypi.python.org/simple/greenlet/
Reading https://github.com/python-greenlet/greenlet
Reading http://bitbucket.org/ambroff/greenlet
Best match: greenlet 0.3.4
Downloading http://pypi.python.org/packages/source/g/greenlet/greenlet-   0.3.4.zip#md5=530a69acebbb0d66eb5abd83523d8272
Processing greenlet-0.3.4.zip
Writing /tmp/easy_install-_aeHYm/greenlet-0.3.4/setup.cfg
Running greenlet-0.3.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-_aeHYm/greenlet-0.3.4/egg-dist-tmp-t9_gbW
In file included from greenlet.c:5:0:
greenlet.h:8:20: fatal error: Python.h: No such file or directory
compilation terminated.
error: Setup script exited with error: command 'gcc' failed with exit status 1`

为什么不能找到Python.h ?

637068 次浏览

安装失败是因为没有安装python开发头文件。你可以通过ubuntu/debian上的apt来做到这一点:

sudo apt-get install python-dev

对于python3使用:

sudo apt-get install python3-dev

对于eventlet,你可能还需要安装libevent库,所以如果你得到一个错误,你可以安装libevent:

sudo apt-get install libevent-dev

对于Fedora:

sudo yum install python-devel


sudo yum install libevent-devel

最后:

sudo easy_install gevent

从源代码构建并安装,这在最新版本(10.3+)中得到了修复:

mkdir -p /tmp/install/netifaces/
cd /tmp/install/netifaces && wget -O "netifaces-0.10.4.tar.gz" "https://pypi.python.org/packages/source/n/netifaces/netifaces-0.10.4.tar.gz#md5=36da76e2cfadd24cc7510c2c0012eb1e"
tar xvzf netifaces-0.10.4.tar.gz
cd netifaces-0.10.4 && python setup.py install

对于CentOS 7.2:

LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.2.1511 (Core)
Release:    7.2.1511
Codename:   Core

安装eventlet:

sudo yum install python-devel
sudo easy_install -ZU eventlet

终端信息:

[root@localhost ~]# easy_install -ZU eventlet
Searching for eventlet
Reading http://pypi.python.org/simple/eventlet/
Best match: eventlet 0.19.0
Downloading https://pypi.python.org/packages/5a/e8/ac80f330a80c18113df0f4f872fb741974ad2179f8c2a5e3e45f40214cef/eventlet-0.19.0.tar.gz#md5=fde857181347d5b7b921541367a99204
Processing eventlet-0.19.0.tar.gz
Running eventlet-0.19.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-Hh9GQY/eventlet-0.19.0/egg-dist-tmp-rBFoAx
Adding eventlet 0.19.0 to easy-install.pth file


Installed /usr/lib/python2.6/site-packages/eventlet-0.19.0-py2.6.egg
Processing dependencies for eventlet
Finished processing dependencies for eventlet

对于openSUSE 42.1 Leap Linux使用此文件

sudo zypper install python3-devel

对于Redhat版本(Centos 7)使用以下命令安装Python开发包

< >强Python 2.7 < / >强

sudo yum install python-dev

< >强Python 3.4 < / >强

sudo yum install python34-devel

< >强Python 3.6 < / >强

sudo yum install python36-devel

如果问题仍然没有解决,然后尝试安装以下包-

sudo yum install python-devel


sudo yum install openssl-devel


sudo yum install libffi-devel

试试这个:

sudo apt-get install libblas-dev libatlas-base-dev

我在Ubuntu 14.04上也遇到了类似的问题。对我来说,以下是Ubuntu软件包

我在CentOS上工作的是:

sudo yum -y install gcc
sudo yum install python-devel

MacOS上,我在安装fbprophet时遇到了问题,这需要pystan,需要gcc来编译。我将始终得到相同的错误:命令“gcc”退出状态为1失败

我想我自己解决了这个问题:

我使用brew install gcc来安装最新的版本,最终是gcc-8

然后我确保当gcc运行时,它将使用gcc-8代替。

它可以工作,因为我在我的.zshrc中添加了alias gcc='gcc-8(与.bashrc相同,但用于zsh),或者因为我运行了export PATH=/usr/local/bin:$PATH(参见评论)

:我所有的尝试都在虚拟环境中,我只成功地全局安装了fbprophet(使用皮普),但在venv中仍然没有成功

这是一篇旧文章,但我只是在AWS EC2安装regex时遇到了同样的问题。这对我来说很有效

sudo yum -y install gcc

和明年

sudo yum -y install gcc-c++

MacOS上,我也有问题,试图安装fbprophet,它有gcc作为其依赖项之一。

在尝试了@鲍里斯推荐的几个步骤后,下面来自Facebook Prophet项目页面的命令最终为我工作了。

conda install -c conda-forge fbprophet

它安装了fbprophet所需的所有依赖项。确保你已经安装了anaconda。

如果它仍然不能工作,您可以试试这个

sudo apt-get install build-essential

对我来说,它解决了问题。

类似地,我像这样修复了它(注意python34):

sudo yum install python34-devel

我正在使用MacOS catalina 10.15.4。上面的解决方案对我来说都没用。对我有用的是:

 >> xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates


>> env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2==2.8.4
Collecting psycopg2==2.8.4
Using cached psycopg2-2.8.4.tar.gz (377 kB)
Installing collected packages: psycopg2
Attempting uninstall: psycopg2
Found existing installation: psycopg2 2.7.7
Uninstalling psycopg2-2.7.7:
Successfully uninstalled psycopg2-2.7.7
Running setup.py install for psycopg2 ... done
Successfully installed psycopg2-2.8.4

python3使用pip3

如果你和我一样在Mac上,在你的终端上试试这个:xcode-select --install

然后接受安装请求,然后按照在本期节目中所述工作

这个页面将拯救你的生命,对于所有即将到来的lib问题,

对于Alpine(>=3.6),使用

apk --update --upgrade add gcc musl-dev jpeg-dev zlib-dev libffi-dev cairo-dev pango-dev gdk-pixbuf-dev

sudo apt install gcc

它适用于Ubuntu 20.10上的PyCharm。

如果你正在迁移到一个更现代的python3版本,例如python3.5 to python3.8,你可能想要检查/升级失败的库的版本,如果你已经安装了推荐的库来处理gcc构建python3-dev +其他库的建议。

这取决于包装。python3的后续版本可能不支持这些包的某些版本。