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

Posted

技术标签:

【中文标题】错误:安装 eventlet 时命令“gcc”失败,退出状态为 1【英文标题】:error: command 'gcc' failed with exit status 1 while installing eventlet 【发布时间】:2012-06-21 02:57:50 【问题描述】:

我想在我的系统上安装 eventlet 以便有“群”进行软件部署..但终端显示 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

【问题讨论】:

【参考方案1】:

对于Redhat Versions(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

【讨论】:

No package python-dev available. 我明白了。【参考方案2】:

如果您像我一样使用 Mac,请在终端中尝试:xcode-select --install

然后接受安装请求,然后按照in this issue的描述工作

【讨论】:

【参考方案3】:

This page 会挽救你的生命,解决即将出现的所有其他 lib 问题,

对于 Alpine(>=3.6),使用

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

【讨论】:

对我来说听起来像是过度依赖并添加了约 200 MB - ``WeasyPrint` 与它有什么关系?但我必须声明,这是帮助我解决与 jenkins 容器中的 ansible 相关的问题的唯一原因。 @Cadoiz 享受 :)【参考方案4】:

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

这取决于包。更高版本的python3可能不支持某些版本的包。

【讨论】:

【参考方案5】:

sudo apt install gcc

它适用于 Ubuntu 20.10 上的 PyCharm。

【讨论】:

【参考方案6】:

我正在使用 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

pip3 用于 python3

【讨论】:

【参考方案7】:

您的安装失败,因为您没有安装 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

【讨论】:

FWIW,你肯定需要 python-dev 和 libevent-dev。谢谢! 对于fedora,你可以使用:sudo yum install python-devel 我建议在运行这两个命令之前运行sudo apt-get updatesudo apt-get install python-dev 出现错误。 我有同样的错误,但安装了 python-devel 并且系统使用 yum -y install updates 进行了更新。还有什么问题? yum install python3-devel【参考方案8】:

同样,我也这样修复了它(通知python34):

sudo yum install python34-devel

【讨论】:

【参考方案9】:

CentOS 上对我有用的是:

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

【讨论】:

也解决了我的问题。 unable to execute 'gcc': No such file or directory error: command 'gcc' failed with exit status 1 sudo yum install python34-devel 用于python 3.x,因为另一个仅用于python 2.x 我到处寻找这个。默认情况下不再包含使用 RHEL 7 和 gcc。【参考方案10】:

如果还是不行,可以试试这个

sudo apt-get install build-essential

就我而言,它解决了问题。

【讨论】:

解决了我在 Ubuntu 20.04 上使用 shap 库的问题。【参考方案11】:

MacOS 上,我在尝试安装 fbprophet 时也遇到了问题,gcc 作为其依赖项之一。

在尝试了@Boris 推荐的几个步骤后,Facebook Prophet project page 中的以下命令最终对我有用。

conda install -c conda-forge fbprophet

它为fbprophet 安装了所有需要的依赖项。确保您已安装 anaconda。

【讨论】:

谢谢!这个 gcc 给我带来了很多我还没有解决的安装问题,而且 Boris 的步骤也对我不起作用,但这确实起到了作用。谢谢! 是的,在我的情况下 marisa-trie 同样有效:conda install -c conda-forge python-marisa-trie 【参考方案12】:

这是一篇旧帖子,但我在 AWS EC2 安装正则表达式时遇到了同样的问题。这对我来说非常适合

sudo yum -y install gcc

接下来

sudo yum -y install gcc-c++

【讨论】:

【参考方案13】:

MacOS 上安装 fbprophet 时遇到问题,它需要 pystan 需要 gcc 才能编译。我会一直收到同样的错误:command 'gcc' failed with exit status 1

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

我用brew install gcc安装最新版本,结果是gcc-8

然后我确保当gcc 运行时,它会使用gcc-8

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

另外:我所有的尝试都在一个虚拟环境中,我只是通过全局安装fbprophet(使用pip)成功了,但是venv

内部仍然没有成功

【讨论】:

最有帮助的答案!导出 PATH 就成功了【参考方案14】:

对于 Fedora:

sudo yum install python-devel

sudo yum install libevent-devel

最后:

sudo easy_install gevent

【讨论】:

sudo yum install python-devel sudo yum install libevent-devel 为我工作【参考方案15】:

试试这个:

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

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

【讨论】:

【参考方案16】:

对于 openSUSE 42.1 Leap Linux 使用这个

sudo zypper install python3-devel

【讨论】:

欢迎来到 Stack Overflow。请注意,这既是评论,也是答案。主要答案下有许多 cmets,它们描述了不同 Linux 发行版的替代方案。我意识到你还不能制作 cmets。对确实是“cmets”的成熟问题添加“答案”时要谨慎。【参考方案17】:

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

【讨论】:

当我运行时,它给了我错误“无法执行'gcc':没有这样的文件或目录” @Sarang 表示你还没有安装 gcc,执行:"yum -y install gcc"【参考方案18】:

从源代码构建并安装,此问题已在最新版本 (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

【讨论】:

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

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

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

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

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

“未知类型名称'decltype'”:在mac上安装pyicu失败,gcc错误

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