Python.h missing from Ubuntu 12.04
I installed an openflow controller on my Ubuntu 12.04 called RYU using:
sudo pip install ryu
I was trying to run a python file using ryu-manager as shown below.
sudo ryu-manager simple_switch.py
Traceback (most recent call last):
File "/usr/local/bin/ryu-manager", line 19, in <module>
import gevent
ImportError: No module named gevent
Then I tried to install gevent using:
sudo pip install gevent
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c gevent/core.c -o build/temp.linux-x86_64-2.7/gevent/core.o
gevent/core.c:4:20: fatal error: Python.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1
What is the cause of this error? I tried to locate Python.h
using sudo locate Python.h
, but without success. The output of python -V
however is
Python 2.7.3
Should Python.h
be there on the system? If so, what should I install to get it?
This should do it:
sudo apt-get update; sudo apt-get install python-dev -y
It will install any missing headers. It helped me a lot.
Even if you have Python installed, the header file and the library usually aren't installed by default. On Ubuntu, they come in a separate package called python-dev
.
Install gevent
directly - sudo apt-get install python-gevent
.