Python图形化依赖libGL.so.1

Linux 动态链接器找不到 OpenGL 运行库libGL.so.1OpenGL runtime library,很多看起来完全不相关的 Python 包其实会依赖它,比如:

  • opencv-python
  • matplotlib
  • pyautogui
  • pynput
  • Pillow(某些 backend)
  • GUI / 图像处理库

1.安装Mesa OpenGL

安装 Mesa OpenGL 库即可:

1
2
3
4
5
## centos
yum install -y mesa-libGL

## debian
apt-get install -y libgl1

安装完成会提供:

1
/usr/lib64/libGL.so.1

验证:

1
ldconfig -p | grep libGL

应该看到类似:

libGL.so.1 (libc6,x86-64) => /lib64/libGL.so.1

2.动态库加载原理

Linux 程序启动时:

ELF binary
   ↓
ld-linux.so
   ↓
读取NEEDED
   ↓
加载共享库

可以查看依赖:

1
ldd xxx.so