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 Reading Reading 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 Reading Reading Best match: greenlet 0.3.4 Downloading 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?
18 Answers
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 11For Fedora:
sudo yum install python-devel sudo yum install libevent-devel and finally:
sudo easy_install gevent 1What worked for me on CentOS was:
sudo yum -y install gcc sudo yum install python-devel 3For Redhat Versions(Centos 7) Use the below command to install Python Development Package
Python 2.7
sudo yum install python-dev 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 1On 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
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++ 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
0On 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.
If it is still not working, you can try this
sudo apt-get install build-essential in my case, it solved the problem.
1This 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 2For 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 Best match: eventlet 0.19.0 Downloading 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 2For openSUSE 42.1 Leap Linux use this
sudo zypper install python3-devel 1I 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
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
0Build 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" "" tar xvzf netifaces-0.10.4.tar.gz cd netifaces-0.10.4 && python setup.py install Similarly I fixed it like this (notice python34):
sudo yum install python34-devel sudo apt install gcc
It works for PyCharm on Ubuntu 20.10.
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.