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

时间:2018-09-11 20:09:07

标签: python docker server spyder fabric

这个问题有很多变体-但没有一个能完全解决这个问题。

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

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

更新:

我已经在一台服务器上用我的软件包更新了pythonn。现在找出内核名称并链接到spyder。 保留先前版本的问题,因为它仍然有用。

docker进程和paramiko一样有点吓人。我有什么选择?

2 个答案:

答案 0 :(得分:6)

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

您可以在our docs中找到具体的操作说明。

答案 1 :(得分:0)

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

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

我的解决方法是:

1)我制作了一个Redis队列,其中每个任务包括一个带有bash设置脚本(用于pip安装等)的zip文件,一个要运行的“有效载荷” Python脚本以及一个包含输入数据的pickle文件。

2)“有效载荷” Python脚本将读取pickle文件或zip文件中包含的其他文件。它将输出一个名为output.zip的文件。

3)任务工作程序是一个Python脚本(在远程计算机上运行,​​侦听Redis队列),它将解压缩文件,运行bash设置脚本,然后运行Python脚本。退出脚本后,工作人员将上传output.zip。

进行了各种优化,例如工作人员不会连续两次运行相同的bash设置脚本(它记得最近的安装脚本的SHA1哈希)。因此,无论如何,在最坏的情况下,您可以这样做。设置工作需要一两个星期。

修改:

如果只需要在一台远程计算机上运行,​​则第二个选项(更多手册)是使用sshfs在本地安装远程文件系统,因此您可以在Spyder中快速编辑文件。然后,使ssh窗口对远程计算机保持打开状态,并从命令行运行Python以在该计算机上测试运行脚本。 (这是我开发Raspberry Pi程序的标准设置。)