69

我在我的 Ubuntu 12.04 上安装了一个名为 RYU 的 openflow 控制器,使用:

 sudo  pip install ryu

我试图使用 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

然后我尝试使用以下方法安装 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

这个错误的原因是什么?我尝试Python.h使用定位sudo locate Python.h,但没有成功。然而的输出python -V

Python 2.7.3

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

4

4 回答 4

186

这应该这样做:

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

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

于 2013-03-26T07:34:13.867 回答
36

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

于 2013-03-26T07:11:37.803 回答
9

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

于 2013-03-26T07:01:24.437 回答
0

嘿社区我通过这个命令解决了这个问题

pip3 install -U git+https://github.com/kti/python-netfilterqueue

希望它有效:)

于 2020-08-14T00:14:28.243 回答