easy_install pygame由于“linux / videodev.h:没有这样的文件或目录”错误而无法正常工作

试图通过Ubuntu 12.10中的easy_install安装pygame ,以及它给我的错误:

 Continuing With "setup.py" warning: no files found matching 'readme.txt' no previously-included directories found matching '*/CVS' no previously-included directories found matching '*/*/CVS' src/mixer.c: In function 'chan_set_volume': src/mixer.c:660:9: warning: variable 'result' set but not used [-Wunused-but-set- variable] In file included from /usr/include/python2.7/Python.h:8:0, from src/scrap.h:22, from src/scrap.c:30: /usr/include/python2.7/pyconfig.h:1161:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default] In file included from /usr/include/stdio.h:28:0, from src/scrap.c:24: /usr/include/features.h:215:0: note: this is the location of the previous definition In file included from src/scrap.c:59:0: src/scrap_x11.c: In function '_get_data_as': src/scrap_x11.c:567:17: warning: pointer targets in assignment differ in signedness [-Wpointer-sign] src/scrap.c: In function 'initscrap': src/scrap.c:329:15: warning: variable 'mod' set but not used [-Wunused-but-set-variable] In file included from src/_camera.c:36:0: src/camera.h:42:32: fatal error: linux/videodev.h: No such file or directory compilation terminated. error: Setup script exited with error: command 'gcc' failed with exit status 1 

并运行sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h给出:

 Continuing With "setup.py" warning: no files found matching 'readme.txt' no previously-included directories found matching '*/CVS' no previously-included directories found matching '*/*/CVS' src/mixer.c: In function 'chan_set_volume': src/mixer.c:660:9: warning: variable 'result' set but not used [-Wunused-but-set-variable] In file included from /usr/include/python2.7/Python.h:8:0, from src/scrap.h:22, from src/scrap.c:30: /usr/include/python2.7/pyconfig.h:1161:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default] In file included from /usr/include/stdio.h:28:0, from src/scrap.c:24: /usr/include/features.h:215:0: note: this is the location of the previous definition In file included from src/scrap.c:59:0: src/scrap_x11.c: In function '_get_data_as': src/scrap_x11.c:567:17: warning: pointer targets in assignment differ in signedness [-Wpointer-sign] src/scrap.c: In function 'initscrap': src/scrap.c:329:15: warning: variable 'mod' set but not used [-Wunused-but-set-variable] In file included from src/camera.h:20:0, from src/camera_v4l2.c:22: src/pygame.h:678:14: warning: 'PyGAME_C_API' defined but not used [-Wunused-variable] src/camera_v4l.c: In function 'v4l_open_device': src/camera_v4l.c:29:29: error: storage size of 'cap' isn't known src/camera_v4l.c:30:23: error: storage size of 'buf' isn't known src/camera_v4l.c:51:24: error: 'VIDIOCGCAP' undeclared (first use in this function) src/camera_v4l.c:51:24: note: each undeclared identifier is reported only once for each function it appears in src/camera_v4l.c:63:26: error: 'VIDIOCGMBUF' undeclared (first use in this function) src/camera_v4l.c:30:23: warning: unused variable 'buf' [-Wunused-variable] src/camera_v4l.c:29:29: warning: unused variable 'cap' [-Wunused-variable] In file included from src/camera.h:20:0, from src/camera_v4l.c:20: src/camera_v4l.c: At top level: src/pygame.h:678:14: warning: 'PyGAME_C_API' defined but not used [-Wunused-variable] error: Setup script exited with error: command 'gcc' failed with exit status 1 

这个SO答案提供了正确的符号链接。 您需要删除您创建的/usr/include/linux/videodev.h – 它链接到错误版本的头文件。

 sudo apt-get install libv4l-dev
 cd / usr / include / linux
 sudo ln -s ../libv4l1-videodev.h videodev.h

Pygame需要一些依赖:

 sudo apt-get install python-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsdl1.2-dev libsmpeg-dev python-numpy subversion libportmidi-dev ffmpeg libswscale-dev libavformat-dev libavcodec-dev 

如果您不想安装它们,请安装预编译的软件包:

 sudo apt-get install python-pygame 

存储库中的pygame版本( python-pygame )是否太旧了? 如果没有,您应该先尝试安装。

否则,使用python -pip安装pygame

 sudo pip install pygame 

为什么使用pip over easy_install?