我是python的新手。我在我的Linux PC(Ubunutu 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应该在系统上吗?如果是这样,我应该安装什么来获得它?
答案 0 :(得分:184)
这应该这样做:
sudo apt-get update; sudo apt-get install python-dev -y
它将安装任何缺少的标头。它对我帮助很大。
答案 1 :(得分:36)
即使安装了Python,默认情况下也不会安装头文件和库。在Ubuntu上,它们位于一个名为python-dev
的单独包中。
答案 2 :(得分:9)
直接安装gevent
- sudo apt-get install python-gevent
。
答案 3 :(得分:0)
嘿,我通过此命令解决了这个问题
pip3 install -U git + https://github.com/kti/python-netfilterqueue
希望它能起作用:)