ubuntu解决OpenCV安装的问题libGL.so.1和libgthread-2.0.so.0

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

apt update
apt install libgl1-mesa-glx

解决:ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory

apt-get install libglib2.0-dev

可能会遇到下面的问题:

E: The repository 'https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal Release' does not have a Release file.

或者

E: Unable to locate package libgl1-mesa-glx

这两个个报错是清华源的问题,换用阿里云的就没有了,用vim打开/etc/apt/sources.list这个文件,把里面的东西都删掉,复制阿里云源进去,保存就好了,后边的安装就正常。

vim /etc/apt/sources.list  

进入sources.list文件,按两下 d 键,删除一行,直到所有的都删除。然后按一下 i 键,进入编辑模式,把下边的源复制进去,然后按esc键退出编辑模式,按 :wq 保存并退出。

#添加阿里源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

感觉对你有帮助,就点个赞吧>_<

### 解决方案 当在 Docker 或其他环境中尝试 `import cv2` 时遇到 `ImportError: libGL.so.1: cannot open shared object file: No such file or directory` 的问题,通常是因为缺少必要的依赖库。以下是具体的解决方案: #### 方法一:安装缺失的共享库 可以通过安装所需的共享库来解决问题。对于 `libGL.so.1` `libgthread-2.0.so.0` 这类错误,可以分别执行以下命令进行修复。 1. **安装 `libgl1-mesa-glx`** 如果系统中未找到 `libGL.so.1` 文件,则需要安装 Mesa OpenGL 库: ```bash sudo apt-get update && sudo apt-get install -y libgl1-mesa-glx ``` 此操作适用于基于 Debian/Ubuntu 的系统[^2]。 2. **安装 GTK+ 相关库** 对于 `libgthread-2.0.so.0` 错误,可能需要安装 GTK+ 的运行时支持: ```bash sudo apt-get install libgtk2.0-dev libglib2.0-dev ``` 3. **验证安装路径** 确认这些库已正确安装并位于系统的动态链接器路径下: ```bash ldconfig -p | grep libGL.so.1 ldconfig -p | grep libgthread-2.0.so.0 ``` 若上述命令返回为空,则说明库尚未被识别,需重新配置或手动添加到 `/etc/ld.so.conf.d/` 下的相关文件中,并运行 `sudo ldconfig` 更新缓存[^3]。 #### 方法二:使用无头版本 OpenCV (Headless Version) 如果不需要 GUI 功能(如窗口显示),推荐切换至无头版 OpenCV (`opencv-python-headless`) 来减少对外部图形库的依赖。 通过以下命令安装无头版 OpenCV: ```bash pip install opencv-python-headless ``` 此方式特别适合容器化部署场景下的 GPU 计算需求[^4]。 #### 方法三:调整 Docker 配置 针对 Docker 用户而言,还需注意镜像基础环境的选择以及是否启用了硬件加速功能。例如,某些轻量级 Linux 发行版默认不包含完整的 X Window System 支持组件;此时应考虑采用预构建的支持 NVIDIA CUDA/Docker 的官方镜像作为起点。 另外,在启动容器时加入参数允许主机显卡资源映射给内部进程访问也可能有所帮助: ```dockerfile --runtime=nvidia \ -e NVIDIA_VISIBLE_DEVICES=all \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -e DISPLAY=$DISPLAY ``` 以上措施综合运用可有效缓解因缺乏必要软件包而导致的功能调用失败现象。 --- ### 示例代码片段 下面提供一段简单的 Python 脚本用于测试 CV2 加载情况: ```python try: import cv2 print("OpenCV imported successfully.") except Exception as e: print(f"Failed to load OpenCV library due to {e}") ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kunsir_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值