最近六个月以来,我一直在研究将在工作中使用的Python GUI应用程序。具体来说,我的GUI将在我用于工作的几个超级计算机群集上运行。
但是,我主要是在个人计算机上开发软件,在这里,我无法直接访问GUI调用的命令,因为GUI将使用subprocess
来调用仅可用的命令在计算集群上。
因此,为了有效地开发程序,我经常必须将包含与GUI相关的所有文件的目录复制到集群。然后,我在那里测试当前版本,找到所有错误,通过编辑群集上的文件来修复它们,最后将所有文件复制回我的计算机,覆盖旧版本。
这似乎是一种不好的方法,但是我必须能够在开发该软件的环境中测试我的软件,以便发现我的错误。
这肯定是软件开发中的常见问题……实际的程序员在做什么(而不是像我这样的业余程序员)?
编辑:
我大量使用的仅在计算群集上可用的命令示例为squeue
,sacct
和scontrol
(与SLURM相关的命令)。
Edit2: 我可以提到我已经在Python上使用ssh连接进行了测试,但是它显着降低了命令速度,必须为我想要的每个命令建立ssh连接。除非我可以设置一个持久的ssh会话(如打开程序时登录),否则我认为ssh-ing无效。
答案 0 :(得分:0)
探索构成Vagrant a popular choice for developers
的概念Vagrant是用于构建和管理虚拟机的工具 单一工作流程中的环境。凭借易于使用的工作流程和 专注于自动化,Vagrant降低了开发环境的设置 时间,提高生产平价,并使“在我的机器上工作” 原谅过去的遗物。
您的用例被几个无用的盒子覆盖,这些盒子创建了一个用于开发目的的Slurm集群。一个很好的起点可能是
如果您了解并可以使用Vagrant之类的工具设置开发环境,则可以接下来探讨现代代码编辑器或集成开发环境(IDE)为远程开发提供哪些选项。远程开发涵盖了其他一些用例,这些用例也可能适合您的开发人员工具箱。
Visual Studio Code是用于Python开发的“足够好”的免费开放源代码编辑器。根据文档,它具有用于远程开发的强大功能。
Visual Studio Code远程开发允许您将容器,远程计算机或Windows Linux子系统(WSL)用作完整的开发环境。
阅读文档