所以这个问题有变种 - 但是没有一个能在头上发现。
我想运行spyder并在服务器上进行交互式分析。我有2台服务器,也没有spyder。他们都有python(linux服务器),但我没有sudo权限来安装我需要的软件包。
简而言之,用例是:在本地机器上打开spyder。做一些事情(这里需要帮助)使用服务器计算能力,然后将结果返回到本地机器。
更新:
我在一台服务器上用我的软件包更新了python。现在找出内核名称和spyder的链接。保留以前版本的问题,因为这仍然有用。
像帕拉米科这样的码头工艺有点令人生畏。我有什么选择?
(Spyder维护者在这里)您需要做的是在远程服务器中创建Spyder内核并通过SSH连接到它。这是我们提供的唯一设施,可以满足您的需求。
您可以在our docs找到准确的说明。
在我过去的工作中,我想长时间搜索这样的东西,当我们想要快速迭代必须在群集中的许多工作者中运行的代码时。我发现的所有商业和开源任务队列项目都基于运行带有任意输入的固定代码,而不是运行任意代码。
我也有兴趣看看有没有我遗漏的东西。但就我而言,我最终建立了自己的解决方案(遗憾的是不是开源的)。
我的解决方案是:
1)我创建了一个Redis队列,其中每个任务由一个带有bash设置脚本(用于pip安装等)的zip文件,一个要运行的“payload”Python脚本和一个带有输入数据的pickle文件组成。
2)“有效负载”Python脚本将读取pickle文件或zip文件中包含的其他文件。它会输出一个名为output.zip的文件。
3)任务工作者是一个Python脚本(在远程机器上运行,监听Redis队列),它将解压缩文件,运行bash安装脚本,然后运行Python脚本。退出脚本时,工作人员将上传output.zip。
有各种优化,比如工作者不会连续两次运行相同的bash设置脚本(它记住了最新设置脚本的SHA1哈希值)。所以,无论如何,在最坏的情况下你可以做到这一点。设置工作需要一到两周的时间。
编辑:
如果你只需要在一台远程机器上运行,第二个(更多手动)选项是使用sshfs
在本地安装远程文件系统,这样你就可以在Spyder中快速编辑文件。然后保持对远程计算机打开ssh窗口,并从命令行运行Python以测试运行该计算机上的脚本。 (这是我开发Raspberry Pi程序的标准设置。)