我正在使用 Python+Tensorflow 在高性能计算集群上进行 CNN 训练。我需要 opencv (cv2) 来进行一些数据扩充和预处理。我执行 python 代码的节点没有图形界面。然而,python 中的 cv2 想要加载一个没有图形界面就无法使用的文件,它是 X Display Manager Control Protocol 库的一部分。
import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/username/anaconda3/lib/python3.5/site-packages/cv2/__init__.py", line 9, in <module>
from .cv2 import *
ImportError: libXdmcp.so.6: cannot open shared object file: No such file or directory
我有什么想法可以让它发挥作用吗?我让它在几台具有图形界面的独立机器上工作。
集群中的所有机器都使用 Red Hat Linux。我在 Anaconda3 中使用 Python3.5。我的最终目标是使用需要 cv2 的 imgaug 包(https://github.com/aleju/imgaug)。我使用 opencv-python ( https://pypi.python.org/pypi/opencv-python ) 安装了 opencv。我没有管理员权限,因此我几乎无法安装系统相关的东西。
最佳答案
我能够通过安装 libXdmcp 来解决这个问题:
yum install libXdmcp -y
或者:
apt install libXdmcp -y
取决于您集群的操作系统。
此外,由于您提到了计算集群,如果您使用 Jupyter 或 Zeppelin 等通用计算工具,您可以使用 !或 %sh 在笔记本本身内运行 bash 命令。
关于python - 在没有图形界面的集群上使用Python和opencv(ImportError : libXdmcp. so.6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46240444/