Ubuntu20.04安装evdev==1.6.0失败,已装linux-headers仍报错求解决
解决Ubuntu20.04安装evdev==1.6.0的头文件缺失问题
1. 检查头文件位置并创建软链接
先确认系统内是否存在目标头文件:
find /usr -name "input.h" | grep linux find /usr -name "input-event-codes.h" | grep linux
如果文件存在于/usr/src/linux-headers-$(uname -r)/include/linux/目录下,但/usr/include/linux/中没有,执行以下命令创建软链接:
sudo ln -s /usr/src/linux-headers-$(uname -r)/include/linux/input.h /usr/include/linux/input.h sudo ln -s /usr/src/linux-headers-$(uname -r)/include/linux/input-event-codes.h /usr/include/linux/input-event-codes.h
完成后重新尝试安装:
pip install evdev==1.6.0
2. 补充安装通用依赖包
安装通用内核头文件和C标准库开发包,填补可能的依赖缺口:
sudo apt-get install linux-headers-generic libc6-dev
安装完成后再次执行evdev的安装命令。
3. 手动指定头文件路径编译
如果软链接无效,直接在pip安装时指定内核头文件的搜索路径:
CFLAGS="-I/usr/src/linux-headers-$(uname -r)/include" pip install evdev==1.6.0
4. 手动下载源码编译安装
- 下载evdev 1.6.0源码包:
wget https://pypi.org/packages/source/e/evdev/evdev-1.6.0.tar.gz tar -xzf evdev-1.6.0.tar.gz cd evdev-1.6.0
- 修改
setup.py,找到include_dirs配置项,添加内核头文件路径:
include_dirs = ['/usr/src/linux-headers-$(uname -r)/include']
- 执行编译安装:
python setup.py build sudo python setup.py install
5. 核对内核与头文件版本同步
查看当前内核版本:
uname -r
查看已安装的内核头文件包:
dpkg -l | grep linux-headers
若版本不匹配,重新安装对应版本的头文件,或重启系统(若刚更新内核未重启)后再尝试安装。
内容的提问来源于stack exchange,提问作者Naoki
相关产品推荐
相关产品推荐

