libGL.so.1: cannot open shared object file: No such file or directory

文章讲述了在配置云端GPU服务器时遇到的libGL.so.1文件缺失错误,提供了针对Ubuntu和CentOS系统的解决方法,包括卸载重装opencv-python,安装libgl1或libgl1-mesa-glx等,以及在Docker环境中的相关配置步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【解决方法】libGL.so.1: cannot open shared object file: No such file or directory-CSDN博客

在配云端GPU服务器时,出现这个错误

File "/usr/local/lib/python3.6/dist-packages/cv2/__init__.py", line 8, in <module>
    from .cv2 import *
ImportError: libGL.so.1: cannot open shared object file: No such file or directory

解决方法(easy)

setup 에서 cv2 설치 오류가 발생합니다. · Issue #78 · Korea-Health-Datathon/KHD2020 · GitHub

卸载 pip uninstall opencv-python
安装 pip install opencv-python-headless

在Stack Overflow上有其他回答

Ubuntu系统

在docker中出错

将以下行添加到您的 Dockerfile:

# ubuntu系统
RUN apt-get update
RUN apt-get install ffmpeg libsm6 libxext6  -y

这些命令安装通常存在于本地计算机上的 cv2 依赖项,但可能会在您的 Docker 容器中丢失,从而导致问题。

libGL.so.1由 package 提供libgl1,所以添加一下代码

apt-get update && apt-get install libgl1

还有一些解决方案,例如

环境是ubuntu16.04。指令:
apt update
apt install libgl1-mesa-glx

这里说明了这个包的作用个,然后说了是Ubuntu16.0

FROM ubuntu:16.04
# 安装libgl库
RUN apt-get update && apt-get install -y libgl1-mesa-glx
# 安装其他必要的软件
RUN apt-get install -y software-properties-common && add-apt-repository ppa:jonathonf/python-3.6 && apt-get update && apt-get install -y python3.6 python3-setuptools python3-pip
# 设置Python3.6为默认版本
RUN ln -sf /usr/bin/python3.6 /usr/bin/python3 && ln -sf /usr/bin/python3 /usr/bin/python
# 安装其他必要的Python库
RUN pip3 install --no-cache-dir numpy opencv-python

CentOS系统

如果您使用的是 CentOS、RHEL、Fedora 或其他使用 的 linux 发行版yum,您将需要:

sudo yum install mesa-libGL -y

注意,这个安装包名和linux系统需要对应。否则,No package libgl1 available.

当前yum源找不到所需包,安装epel源即可

yum install -y epel-release

最终放在Dockerfile里是这样解决的,

USER root
RUN yum install -y mesa-libGL
RUN yum install -y mesa-libGL-devel # 安装这个最终解决

ImportError: libGL.so.1: cannot open shared object file: No such file or directory · Issue #10 · conda-forge/pygridgen-feedstock · GitHub

<think>好的,用户想解决缺少libGL.so.1的问题,如何安装或修复这个文件呢?首先,我需要回忆一下之前提供的引用内容。引用[1]中提到可以用sudo apt-get install --reinstall安装或重新安装libgl1-mesa-glx和libgl1-mesa-dri这两个包。这两个包应该和OpenGL相关,可能包含libGL.so.1文件。 用户的问题是关于缺少libGL.so.1,所以首先应该建议他们重新安装相关的库。另外,引用[2]显示libgl1-mesa-glx的安装路径在/usr/lib/x86_64-linux-gnu/mesa/下,这可能意味着不同架构的路径不同,比如树莓派这样的arm架构可能路径不同,如引用[3]中的路径是/usr/lib/arm-linux-gnueabihf/。因此,用户可能需要根据他们的系统架构检查对应的路径是否存在该文件。 接下来,用户可能需要检查文件是否存在。如果已经安装但路径不对,可能需要创建符号链接,或者添加路径到环境变量。例如,引用[3]里解决libGLESv2.so的问题就是通过创建符号链接。不过libGL.so.1的情况可能不同,需要确认具体位置。 另外,用户可能需要更新系统或安装其他相关驱动,比如专有显卡驱动,特别是NVIDIA或AMD的驱动,因为有时候Mesa库可能和这些驱动冲突,或者需要额外安装。 还有,用户可能在运行某些程序时遇到这个问题,可能需要检查程序的依赖库是否正确,使用ldd命令查看缺失的库,然后定位问题所在。如果libGL.so.1确实缺失,重新安装相关包是最直接的解决方法。如果安装后仍然找不到,可能需要手动创建符号链接到正确的路径,或者将包含该文件的目录添加到LD_LIBRARY_PATH环境变量中。 总结下来,步骤应该是先尝试重新安装相关的Mesa库,然后检查文件是否存在,如果存在但路径不对,创建链接;如果不存在,可能需要安装其他驱动或检查仓库配置是否正确。</think>### 分步解决方案:安装/修复缺失的 libGL.so.1 #### 方法一:通过APT重新安装Mesa驱动库 1. **更新软件包列表** ```bash sudo apt update ``` 2. **重新安装核心图形库** ```bash sudo apt install --reinstall libgl1-mesa-glx libgl1-mesa-dri ``` 这两个软件包包含OpenGL的共享库文件[^1][^2] 3. **验证文件路径** 安装完成后检查文件是否存在: ```bash ls /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1* ``` 对于ARM架构设备(如树莓派): ```bash ls /usr/lib/arm-linux-gnueabihf/libGL.so.1* ``` #### 方法二:创建符号链接(适用于已存在库文件但路径不符) ```bash sudo ln -sv /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0 /usr/lib/libGL.so.1 ``` *注意:需根据实际安装路径调整源文件路径[^3]* #### 方法三:安装专有显卡驱动(可选) 如果使用NVIDIA/AMD显卡: ```bash # NVIDIA sudo apt install nvidia-driver-xxx # xxx替换为具体版本号 # AMD sudo apt install mesa-vulkan-drivers ``` #### 验证修复结果 ```bash ldconfig -p | grep libGL.so.1 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值