运行 Spyder /Python 在远程服务器上

Run Spyder /Python on remote server

所以这个问题有很多变体 - 但none非常一针见血。

我想 运行 spyder 并在服务器上进行交互式分析。我有两台服务器,都没有 spyder。他们都有 python(linux 服务器),但我没有 sudo 权限来安装我需要的软件包。

简而言之,用例是:在本地机器上打开 spyder。做一些事情(在这里需要帮助)来使用服务器的计算能力,然后 return 结果到本地机器。

更新:

我已经在一台服务器上用我的包更新了 python。现在找出内核名称和 link 到 spyder。 保留以前版本的问题,因为它仍然有用。

docker 过程和 paramiko 一样有点吓人。我有哪些选择?

我在过去的工作中对类似的东西进行了长时间的搜索,当时我们想要快速迭代代码,这些代码必须 运行 跨集群中的许多工作人员。我发现的所有商业和开源任务队列项目都是基于 运行ning 具有任意输入的固定代码,而不是 运行ning 任意代码。

我也有兴趣看看是否有我遗漏的东西。但就我而言,我最终构建了自己的解决方案(不幸的是不是开源的)。

我的解决方案是:

1) 我制作了一个 Redis 队列,其中每个任务都包含一个 zip 文件和一个 bash 安装脚本(用于 pip 安装等),一个 "payload" Python 脚本到运行,以及一个带有输入数据的 pickle 文件。

2) "payload" Python 脚本会读取 pickle 文件或 zip 文件中包含的其他文件。它会输出一个名为 output.zip.

的文件

3) task worker 是一个 Python 脚本(运行ning 在远程机器上,监听 Redis 队列)会解压文件,运行 bash 安装脚本,然后 运行 Python 脚本。当脚本退出时,工作人员将上传 output.zip.

有各种优化,例如工作人员不会连续两次 运行 相同的 bash 安装脚本(它记住了最近安装脚本的 SHA1 哈希)。所以,无论如何,在最坏的情况下你可以这样做。设置需要一两周的时间。

编辑:

第二个(更多的手动)选项,如果你只需要在一台远程机器上 运行,是使用 sshfs 在本地挂载远程文件系统,这样你就可以快速编辑Spyder 中的文件。然后保持 ssh window 对远程机器开放,并从命令行 运行 Python 测试-运行 该机器上的脚本。 (这是我开发 Raspberry Pi 程序的标准设置。)

(此处为 Spyder 维护者) 您需要做的是在您的远程服务器中创建一个 Spyder 内核并通过 SSH 连接到它。这是我们提供的唯一设施,可以满足您的需求。

您可以在 our docs 中找到执行此操作的准确说明。