导入OpenCV时获取"ImportError: libXrender.so.1: cannot open shared object file"



我在导入OpenCV时遇到问题。

环境:

  • 蟒蛇 3.6.1
  • Linux(HPC服务器(
  • OpenCV 3.4.3.18

错误描述:

我正在尝试在成功安装(Requirement already satisfied: opencv-python in /home/users/czxu/.local/lib/python3.6/site-packages (3.4.3.18)(后使用命令导入cv2import cv2,但似乎缺少文件夹或脚本:

Traceback (most recent call last):
File "scripts/preprocessing/gen_mini_batches.py", line 4, in <module>
from avod.builders.dataset_builder import DatasetBuilder
File "/home/users/czxu/avod/avod/builders/dataset_builder.py", line 6, in <module>
from avod.datasets.kitti.kitti_dataset import KittiDataset
File "/home/users/czxu/avod/avod/datasets/kitti/kitti_dataset.py", line 11, in <module>
from wavedata.wavedata.tools.core import calib_utils
File "/home/users/czxu/avod/wavedata/wavedata/tools/core/calib_utils.py", line 3, in <module>
import cv2
File "/home/users/czxu/.local/lib/python3.6/site-packages/cv2/__init__.py", line 3, in <module>
from .cv2 import *
ImportError: libXrender.so.1: cannot open shared object file: No such file or directory
srun: error: sh-06-20: task 0: Exited with exit code 1

我去了文件夹/home/users/czxu/.local/lib/python3.6/site-packages/cv2/

czxu@cv2$cd /home/users/czxu/.local/lib/python3.6/site-packages/cv2
czxu@cv2$ls -a
.  ..  cv2.cpython-36m-x86_64-linux-gnu.so  data  __init__.py  .libs  LICENSE-3RD-PARTY.txt  LICENSE.txt  __pycache__

你对此有什么想法吗?我们将真诚地感谢答案和讨论。

有同样的问题(Python 3.6.6,opencv 3.4.3.18,Ubuntu 18.04(。我通过安装 libXrender 修复了它:

sudo apt-get install libxrender1

此处记录了此内容。安装后,我能够import cv2.

yum -y install libSM-1.2.2-2.el7.x86_64 --setopt=protected_multilib=false
yum -y install libXext-1.3.3-3.el7.x86_64 --setopt=protected_multilib=false

对于 CentOS 和 RHEL:

yum install libXrender

可以通过以下命令进行验证,该命令显示所需的软件包(在不同版本中(:

yum whatprovides libXrender

对于其他遗漏的libX*.so使用相同的包命名约定

相关内容

最新更新