244

I wanted to install eventlet on my system in order to have "Herd" for software deployment.. but the terminal is showing a gcc error:

  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`

Why can't Python.h be found?

Unai Vivi
  • 3,073
  • 3
  • 30
  • 46
Anubhav Grover
  • 2,451
  • 2
  • 14
  • 6

19 Answers19

412

Your install is failing because you don't have the python development headers installed. You can do this through apt on ubuntu/debian with:

sudo apt-get install python-dev 

for python3 use:

sudo apt-get install python3-dev

For eventlet you might also need the libevent libraries installed so if you get an error talking about that you can install libevent with:

sudo apt-get install libevent-dev
Trenton McKinney
  • 56,955
  • 33
  • 144
  • 158
Trevor
  • 9,518
  • 2
  • 25
  • 26
57

For Fedora:

sudo yum install python-devel

sudo yum install libevent-devel

and finally:

sudo easy_install gevent
Snehal Parmar
  • 5,453
  • 3
  • 35
  • 46
41

What worked for me on CentOS was:

sudo yum -y install gcc
sudo yum install python-devel
nishant
  • 896
  • 1
  • 8
  • 27
35

For Redhat Versions(Centos 7) Use the below command to install Python Development Package

Python 2.7

sudo yum install python-dev
or
sudo yum install python-devel

Python 3.4

sudo yum install python34-devel

Python 3.6

sudo yum install python36-devel

If the issue is still not resolved then try installing the below packages -

sudo yum install python-devel

sudo yum install openssl-devel

sudo yum install libffi-devel
Rahul Satal
  • 2,107
  • 3
  • 32
  • 53
22

On MacOS I had trouble installing fbprophet which requires pystan which requires gcc to compile. I would consistently get the same error: command 'gcc' failed with exit status 1

I think I fixed the problem for myself thus:

I used brew install gcc to install the newest version, which ended up being gcc-8

Then I made sure that when gcc ran it would use gcc-8 instead.

It either worked because I added alias gcc='gcc-8 in my .zshrc (same as .bashrc but for zsh), or because I ran export PATH=/usr/local/bin:$PATH (see comment)

Also: all my attempts were inside a virtual environment and I only succeeded by installing fbprophet globally (with pip), but still no success inside a venv

Boris Yakubchik
  • 3,861
  • 3
  • 34
  • 41
7

This is an old post but I just run to the same problem on AWS EC2 installing regex. This working perfectly for me

sudo yum -y install gcc

and next

sudo yum -y install gcc-c++
PiotrK
  • 357
  • 3
  • 13
7

If it is still not working, you can try this

sudo apt-get install build-essential

in my case, it solved the problem.

shivampip
  • 2,004
  • 19
  • 19
5

try this :

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

I had a similar issue on Ubuntu 14.04. For me the following Ubuntu packages

HISI
  • 4,557
  • 4
  • 35
  • 51
5

On MacOS I also had problems trying to install fbprophet which had gcc as one of its dependencies.

After trying several steps as recommended by @Boris the command below from the Facebook Prophet project page worked for me in the end.

conda install -c conda-forge fbprophet

It installed all the needed dependencies for fbprophet. Make sure you have anaconda installed.

Gidi9
  • 204
  • 2
  • 7
  • Thank you! This gcc is causing me so many install issues that I still have not resolved and Boris steps wouldn't work for me either but that did the trick. Thank you! – shad Mar 25 '20 at 11:17
  • yep, similarly in my case for `marisa-trie` it worked: `conda install -c conda-forge python-marisa-trie ` – alisa Aug 10 '20 at 19:25
4

This page is gonna save your life, for all further lib issues that are forthcoming,

For Alpine(>=3.6), use

apk --update --upgrade add gcc musl-dev jpeg-dev zlib-dev libffi-dev cairo-dev pango-dev gdk-pixbuf-dev
sb813322
  • 129
  • 9
Aakash Verma
  • 3,705
  • 5
  • 29
  • 66
  • Sounds like an overkill of dependencies to me and added ~200 MB - what has ``WeasyPrint` to do with that? But I have to state that this is the onlz thing that helped me with an Issue related to ansible in a jenkins container. – Cadoiz Sep 20 '21 at 13:02
  • 1
    @Cadoiz enjoy :) – Aakash Verma Sep 20 '21 at 13:50
3

For 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

Install eventlet:

sudo yum install python-devel
sudo easy_install -ZU eventlet

Terminal info:

[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
Little Roys
  • 5,383
  • 3
  • 30
  • 28
3

For openSUSE 42.1 Leap Linux use this

sudo zypper install python3-devel
Jonathan Leffler
  • 730,956
  • 141
  • 904
  • 1,278
Akson
  • 681
  • 8
  • 8
  • Welcome to Stack Overflow. Note that this is as much of a comment as an answer. There are a number of comments under the main answers which describe alternatives for different Linux distros. I realize you can't make comments yet. Be cautious about adding 'answers' to well-established questions which are really 'comments'. – Jonathan Leffler May 29 '17 at 04:43
2

I am using MacOS catalina 10.15.4. None of the posted solutions worked for me. What worked for me is:

 >> 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

use pip3 for python3

monofal
  • 1,928
  • 1
  • 13
  • 15
1

if you are on Mac as myself, try this in your terminal: xcode-select --install

Then accept the installation request, and it works afterwards as described in this issue

sb813322
  • 129
  • 9
Lisa
  • 4,126
  • 12
  • 42
  • 71
0

Build from source and install, this is fixed in the latest release (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
Rob Frey
  • 11
  • 1
0

Similarly I fixed it like this (notice python34):

sudo yum install python34-devel
Hossein Narimani Rad
  • 31,361
  • 18
  • 86
  • 116
0

sudo apt install gcc

It works for PyCharm on Ubuntu 20.10.

Mai Hai
  • 976
  • 8
  • 12
0

If you are migrating to a more modern version of python3 e.g. python3.5 to python3.8 You may want to check/upgrade the versions of the library that are failing if you have already installed the recommended libraries to handle gcc building python3-dev + other libraries as suggested.

It depends on the package. Some versions of the packages may not be supported on later versions of python3.

unlockme
  • 3,897
  • 3
  • 28
  • 42
0

On a macOS, if the message


xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
...

is part of the error log, installing the developer tools could solve this issue.

The following terminal command can run the developer tools software installation:

$ xcode-select --install

I encountered a similar issue while installing greenlet, and the above resolved it.

Aziz Alto
  • 19,057
  • 5
  • 77
  • 60