从Ubuntu 12.04中缺少Python.h

liv*_*hak 68 python ubuntu-12.04

我是python的新手.我在我的Linux PC(Ubunutu 12.04)上安装了一个名为RYU的openflow控制器,使用:

 sudo  pip install ryu
Run Code Online (Sandbox Code Playgroud)

我试图使用ryu-manager运行python文件,如下所示.

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
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用以下命令安装gevent:

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
Run Code Online (Sandbox Code Playgroud)

这个错误的原因是什么?我尝试使用以下方法找到Python.h文件:

  sudo locate Python.h
Run Code Online (Sandbox Code Playgroud)

我在我的系统上找不到它.但是如果我跑:

python -V
Run Code Online (Sandbox Code Playgroud)

我得到输出:

Python 2.7.3
Run Code Online (Sandbox Code Playgroud)

Python.h应该在系统上吗?如果是这样,我应该安装什么来获得它?

小智 184

这应该这样做:

sudo apt-get update; sudo apt-get install python-dev -y

它将安装任何缺少的标头.这对我帮助很大.

  • 如果你使用的是另一个版本的Python,例如3.3:sudo apt-get install python3.3-dev (22认同)

NPE*_*NPE 36

即使安装了Python,默认情况下也不会安装头文件和库.在Ubuntu上,它们来自一个名为的单独包python-dev.


Bur*_*lid 9

gevent直接安装- sudo apt-get install python-gevent.