是否可以使用任何IDE(例如PYCHARM)在AWS实例中进行SSH?

时间:2018-09-15 01:56:02

标签: amazon-web-services amazon-ec2 ssh pycharm sftp

我在一个项目中遇到了技术问题,我认为您可以通过论坛获得帮助。

我有一个在AWS上运行的EC2 Instance Type:p2.xlarge,我在此实例中克隆了一个需要pytorch和cuda依赖关系的存储库(这一点已得到解决)。

现在,问题在于我想以某种方式在本地pyCHARM IDE中运行并运行此代码库(现在是AWS实例)。简而言之,我的笔记本电脑上没有足够的资源来运行存储库,因此我必须在AWS实例中运行,但是出于调试目的,本地IDE是一个不错的选择。

是否可以做到这一点?。换句话说,我们可以在AWS实例中执行SSH并运行代码,但如果可以通过PYCHARM进行SSH且可以请在PYCHARM中的本地计算机中查看AWS中的代码,并以本地代码进行更改,调试或运行,但实际上它是在实例中执行的。

请提出解决方案。 预先感谢。

EDIT-1:

在@Cromulent建议之后,我到达了这里 设置遥控器:

enter image description here

上载在本地和远程存储库中。 enter image description here

当我只想在PYCHARM IDE中打开远程文件夹并对其进行操作时,我仍然不了解同步本地和远程文件夹的要求。

我认为在完成此设置后,我必须更改本地副本中的代码,PYCHARM将同步远程副本中的代码。在这种情况下,我将如何运行(使用远程实例的资源-GPU,而不是本地计算机。)在PYCHARM中的远程代码,我只是对其进行同步,为了再次运行,我必须通过命令行ssh并运行脚本(这不符合目的)?

EDIT-2: 在@Cromulent建议之后。

实际上,它确实有效,但是仍然无法在本地运行远程代码。 运行任何远程脚本时出现以下错误。如果我在终端中使用ssh运行相同的脚本,则这些脚本将正常运行。我试图在StackOverflow上使用this post来解决此问题,但是它也无法正常工作。

ssh://ubuntu@ec2-52-41-247-169.us-west-2.compute.amazonaws.com:22/home/ubuntu/anaconda3/bin/python -u <08ad9807-3477-4916-96ce-ba6155e3ff4c>/home/ubuntu/InsightProject/scripts/download_flownet2.py
/home/ubuntu/anaconda3/bin/python: can't open file '<08ad9807-3477-4916-96ce-ba6155e3ff4c>/home/ubuntu/InsightProject/scripts/download_flownet2.py': [Errno 2] No such file or directory

以下是上述问题的屏幕截图: enter image description here

3 个答案:

答案 0 :(得分:3)

PyCharm Professional支持远程Python解释器(全局安装的Python解释器或virtualenv)。它通过创建到服务器的SSH连接,然后在远程主机上运行代码来工作。然后,结果将在PyCharm Professional中本地显示。您还可以进行远程调试。

您必须使用专业版的PyCharm。免费社区版本不支持此功能。

您可以在此处找到文档:

https://www.jetbrains.com/help/pycharm/configuring-remote-interpreters-via-ssh.html

答案 1 :(得分:1)

另一种解决方案是在远程服务器上部署Jupyter Notebook。然后您将可以to use it from PyCharm Professional Edition

不要忘记在AWS控制台和实例中为jupyter端口制定规则(例如,允许所有8888)。

要为笔记本配置远程解释器,请执行以下操作(source):

  
      
  1. 打开“设置/首选项”对话框的Jupyter Notebook页面。

  2.   
  3. 在此页面上,选择或清除“启用Markdown单元渲染”选项,然后指定用户名和密码。请注意,对于   单用户笔记本,这些字段是可选的-将其保留为空白。

  4.   
  5. 填写用户名(对于JupyterHub)和密码。

  6.   
  7. 单击链接“配置远程解释器”。您会在Project Interpreter页面中找到自己。

  8.   
  9. 按照Configuring Python Interpreter部分中的说明配置远程解释器。

  10.   

您将要配置一个远程解释器。

答案 2 :(得分:0)

我尝试了上述方法,但对我而言不起作用。我已经对帖子进行了编辑,以便可以从社区中获得更多的输入,但是在发布第一个答案之后,我什么也没有。

我的朋友实际上找到了解决该问题的第二种方法。他实际上在本地计算机上使用“ NOMACHINE”,并打开了到远程桌面的连接。然后,您可以直接在远程计算机中安装PYCHARM并在其中运行。我希望这对其他人有帮助。

解决方法在他的blog post中。 (感谢关少波)

另一种解决方案是使用VNC代替NoMachine