PyCharm 配置远程python解释器和在本地修改服务器代码

PyCharm 配置远程python解释器和在本地修改服务器代码

最近在学习机器学习的过程当中,经常须要将本地写的代码传到GPU服务器中,而后在服务器上运行。以前的作法一直是先在本地写好代码,而后经过FileZilla这样的文件传输工具来将写好的文件传到服务器,再经过ssh工具远程链接到服务器,执行相应的python脚本。这样的方式十分繁琐,效率很低。今天听到朋友提到了配置远程解释器python

使用场景

先说说本身的使用场景,我是在什么状况下,须要将IDE配置成这样的环境来方便个人工做。ubuntu

首先,我须要在本地机子上写python代码,可是由于是机器学习相关的一些代码,有时候本机跑可能会很慢,或者根本跑不下来。而此时,我还有一台可用的服务器,上面配置了相应的python3环境和相应的机器学习库,好比tensorflow,keras,tflearn等等。所以一般须要将本地写好的代码上传到服务器上,在服务器上运行。因为代码能力渣渣,因此经常须要反复修改代码,而直接在服务器上修改代码不是很方便。所以,我但愿能够像下面同样操做:服务器

  1. 我在服务器上有一个工做目录,我但愿能够直接在我本地机子上修改工做目录下面的代码文件
  2. 由于Pycharm能够配置远程python解释器,因此我但愿能够直接在本地的机子上运行修改的代码,而且直接在本地机子查看运行的结果,而不用ssh到远程服务器在执行代码。
  3. 具体来讲就是,我能够直接在本地上编写代码,而后直接点击pycharm的绿色小三角执行代码,而且这个执行是由远程服务器的python解释器执行的,而不是在我本地机子上配置的python环境下执行。

配置过程

本机环境

操做系统:win10app

IDE:Pycharmssh

远程服务器

操做系统:ubuntu14.04机器学习

配置了ssh,可使用ssh进行远程登录工具

配置Deployment

首先,在pycharm的菜单栏依次找到:Tools > Deployment > Configuration.学习

经过菜单栏打开Deployment设置页面

而后能够看到以下的配置页面,具体各配置在图片中说明:spa

配置Deployment的Connection

而后打开Deployment的Mapping选项卡:操作系统

这样,Deployment的配置就完成了。这个配置完成了以后,实际上是至关于配置了一个ftp工具能够链接到服务器上,从而能够查看和修改服务器上的文件。你能够经过Tools > Deplotment > Browse Remote Host来打开相应的RemoteHost面板,这个面板显示的就是服务器上的文件,显示的范围是你在Deployment中的Connection选项卡下配置的Root path路径下的文件及文件夹。

代开RemoteHost面板

你能够直接在RemoteHost面板里双击某个文件而且直接进行编辑。双击某个文件后你能够看到编辑区域的顶部有一个横条,而且横条的右边有三各按钮,分别是比较,撤销和上传操做。你在这里面编辑文件以后,能够直接点击上传按钮,就会提交到服务器了。可是其实不推荐直接在这里修改代码,后面的使用流程会说到。

直接编辑RemoteHost里的文件

以上的配置,就能够直接在PyCharm里看到服务器上的文件,我感受就像是直接在IDE里集成了一个FTP传输工具。

配置远程python解释器

这里主要讲的是如何配置远程python解释器。

首先,经过File > Settings,打开设置选项卡。

在设置选项卡里,点击"Project:项目名"这个按钮,在展开的小项里再点击Project Interpreter,右边就会变成Interpreter的配置页面。

点击Interpreter配置页面的小此轮按钮,而后再选择add Remote。

弹出以下弹窗并配置相应的信息。

通过以上步骤,你的远程解释器就配置好了。这时,你就能够直接点击小三角按钮,调用远程服务器上的python解释器来运行代码。可是在此,你还须要看看下面的使用流程。若是你直接双击RemoteHost面板里的文件,而后点击小三角运行是会报错的,可能会提示:

No such file or directory

使用流程

在配置中也参考了不少其余文章,可是有些文章仍是没有讲清楚具体的流程,所以我把本身认为可能“正确”的流程记录一下。

在介绍Deployment配置的时候,咱们讲到了Mapping选项卡的配置。这个配置将本地的一个路径映射成了服务器上的一个路径,所以,在这个文件夹下的文件和服务器上的文件是同步的,固然,须要你在本地修改的时候upload到服务器或者设置自动upload。

在这里,个人mapping配置以下:

local path Deployment path on server
E:\workspace\remotespace xxxx/workspacexhh

首先,咱们在pycharm中经过 File > open... 来打开一个新的项目,项目路径就选择上面的local path路径。

在Project窗口中就能够看到打开了这个项目,当前这个项目仍是空的,里面什么也没有。

而后,咱们打开RemoteHost小窗口,在test.py文件上右键,再选择Download from Here,文件就会下载到本地了。返回到Project小窗口,就能够看到test.py。其余的文件相似,若是有父目录,他会将父目录也一块儿下载下来,因此文件和路径都会和服务器保持一致。

这样,你就能够在本地编辑test.py文件。

在编辑完成后,你能够在文件上右键或者直接在编辑区域右键,选择upload to... 将文件上传到服务器,这样就能够更新服务器端的代码了,而且保持了和本地代码一致。

此时,点击绿色小三角运行代码,能够看到相应的输出。可是看看控制台的输出,能够发现,python解释器不是本地的,而跑的文件也不是本地。

上面就是整个从服务器下载文件至本地,在本地修改文件,将文件上传至服务器,而后直接在本地运行的整个过程。

在这个过程当中,也能够发现,通过这样的配置,咱们的代码如今一共有三个版本:一个是本地代码,一个是服务器上的代码,还有一个是RemoteHost面板中的代码(这个地方的代码若是直接编辑了,其实也能够提交到服务器,可是不能直接运行)

因此,若是经过上面的配置进行远程调试的话,我认为大体流程应该是下面这样:

  1. 在RemoteHost面板中,选中想要修改的代码,而后右键点击Download from here将内容下载至本地(这个本地是你在配置Deployment时设置的本地文件夹)。
  2. 在本地(这个本地是你在配置Deployment时设置的本地文件夹)修改你的代码,修改完成后在编辑区域或者文件名上右键,选择upload to...来提交到服务器。
  3. 在提交以后,你能够像普通调用本地解释器同样的直接运行本地的这个文件(但其实运行的是服务器的文件)

在这里,虽然RemoteHost里的文件能够直接编辑,可是并不建议这么作,由于这里编辑以后并不能直接运行。

相关文章
相关标签/搜索