当前位置: 首页 > 知识库问答 >
问题:

如何使用opencv在远程jupyter笔记本执行?

姜杜吟
2023-03-14

在使用macOS Mojave的本地机器中,我安装了一个虚拟环境,其中包含Python 3.6、opencv包和一些其他不相关的包。

我开始了一个非常简单的Jupyter笔记本,执行没有问题,这是代码:

import cv2
print(cv2.__version__)
my_img = cv2.imread("colibri_763_460.jpeg",1)
cv2.imshow("Original", my_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

现在,我正试图在远程Ubuntu机器上的Jupyter笔记本中执行相同的代码,但我无法使其工作。以下是我采取的步骤:

  • 我将图像文件和笔记本ypnb文件复制到远程ubuntu机器上
  • 我打开了一个ssh会话,选择了一个与本地计算机包相同的virtualenv,并执行了“jupyter笔记本”
  • 我用ssh-l8000:localhost:8888打开了另一个终端mpastorg@mpgubu18对于ssh隧道
  • 我在localhost:8000中打开了我的本地浏览器来执行我在远程Ubuntu机器中的笔记本,它可以与任何不涉及opencv的笔记本一起工作

我试图用两种不同的方法来解决我的问题:

  • 在ubuntu远程机器上安装opencv contrib python headless包:当我尝试使用cv2时。imshow,我得到了找不到的错误方法
  • 在ubuntu远程机器上安装opencv contrib python包:我得到一个错误,内核已经死了

有人知道有没有办法执行远程jupyter笔记本并在本地查看图片?是否有可能在浏览器窗口中嵌入图片?

非常感谢你,马科斯牧师

共有1个答案

薛承基
2023-03-14

我想知道图像是否正在使用X渲染——在主机和ssh隧道中,您都没有显式启用X。

在主机上。(您希望看到图像的位置)。输入此注释

xhost+

这现在允许远程X主机向您发送数据。由于您在Mac上,因此需要安装XQuartz软件包。

现在修改您的ssh命令。-因此,允许使用X-这通常是使用-X标志来完成的(或者可以像这样将其放置在.ssh/config文件中

Host *
  ForwardX11 yes
  ForwardX11Trusted no
  XAuthLocation /opt/X11/bin/xauth
  ForwardAgent yes
  Compression yes
  KeepAlive yes
  Compression yes

如果不使用配置,请尝试以-X开头。

希望有帮助

 类似资料:
  • 因此,我试图从远程pc连接到我的jupyter笔记本,因为我自己的pc没有全局IP,我必须首先连接到本地网络(服务器1)中的另一台pc,然后通过ssh连接到我自己的pc,并在其上运行jupyter(服务器2),所以类似这样: 我的笔记本电脑- 我曾经这样做,当两个服务器Linux这样: 在我的笔记本电脑上: 在服务器1上: 在服务器2上: 但是现在我的服务器2是一台windows pc,我的jup

  • 我通常访问Jupyter笔记本运行在Linux从Mac OS X通过端口转发如下: https://coderwall.com/p/ohk6cg/remote-access-to-ipython-notebooks-via-ssh 有没有可能在Windows10而不是Mac OS上做类似的事情?我猜油灰或WSL提供一个。 https://www.akadia.com/services/ssh_pu

  • 问题内容: 典型地,一个运行或或在终端局部地启动一个Jupyter笔记本网络服务器(和打开的浏览器中的URL)。使用conda 和conda环境时, 最常见的错误消息似乎是:在conda环境中安装XYZ软件包后, 可以在其中启动的python控制台中运行,但是在 Jupyter笔记本中 运行相同的代码 将导致ImportError 。 这个问题已经被问过很多次了,但是没有一个很好的答案,大多数Q&

  • 我运行一个jupyter笔记本在一个docker容器(ubuntu)上运行一个远程机器(亚马逊p2)。我想通过我的浏览器(http://localhost:8883/)访问笔记本,但我得到: 我的ssh配置: 我正在运行容器(在远程机器上): 在我运行的docker容器上: 我能够连接到远程机器上运行的笔记本(不在docker容器中)。 如何从浏览器连接到docker机器上运行的笔记本?

  • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow的主题。 2年前关闭。 改善这个问题 我想在我可以访问的计算机上运行服务器,并且已经能够在本地运行笔记本计算机。 如何设置以便可以 远程 访问? 问题答案: 如果您具有ssh访问将运行服务器的计算机的权限,请执行以下步骤: 1)在将运行 服务器 的机器上,执行: 2)

  • 所以,我试图使用Python/Jupyter笔记本做一些数据分析。数据集位于远程smb共享驱动器上。如何在不下载到本地计算机的情况下读取数据? 我尝试通过运行以下命令更改工作目录: 我得到一个“没有这样的文件或目录”错误。 我将感谢任何人能提供的任何帮助!