Pycharm远程开发教程

Pycharm远程开发教程本文按照个人需求讲解了如何通过 Pycharm 实现远程开发

Pycharm远程开发教程

最近项目中使用到了Pycharm的远程开发,记录一下具体的使用方式,本文涉及到的操作均为Pycharm专业版(环境为Win10和Ubuntu16),社区版功能没有这么丰富,使用学生邮箱(.edu后缀)注册Jetbrains的账号可以免费使用Pycharm专业版。

使用场景

往往,算力强大的GPU服务器是没有图形化界面的或者图形界面很不方便,我们习惯在自己的机器上编写代码,然后在服务器上运行程序。在过去,这种需求我是通过ssh远程连接后文件传输,然后通过命令行执行脚本实现的。显然,这种稍微改动就要进行一次文件传输的方法,略显低效,作为一个全能IDE,Pycharm为开发者提供了方便的远程开发功能,包括文件修改的自动同步、远程使用解释器等功能。

远程解释器

曾经的Pycharm只支持远程同步文件,这部分功能由导航栏Tools->Deployment模块设置,不过,现在,Pycharm也支持只配置远程解释器,也就是说,我可以通过远程解释器执行我写的Python脚本,然后运行结果在本地显示出来,这样对本地开发用机器的算力要求就会很低。

下面,我们来看如何配置远程解释器,我这边以一个已经写完的项目为例。

在这里插入图片描述

首先,我们在Pycharm界面中点击左上角的File选项卡,然后选择Settings进入设置页面,找到如上图所示的解释器配置页面,然后点击添加解释器(Python通过解释器来定位不同的Python虚拟环境)。

在这里插入图片描述

接着,选择SSH Interpreter来添加远程解释器,配置如上图,依次填入服务器的IP地址、端口(Pycharm的远程均依赖SSH服务,所以端口为22,务必保证远程SSH服务打开)和登录用的用户名。

在这里插入图片描述

随后,点击Next通过上述的用户名对应的密码或者密钥登录远程服务器(我这里使用的密码)。继续点击Next之后,如果密码正确,就能访问到下面这个页面,此时会默认定位系统的Python解释器,请手动找到自己需要的环境的解释器(我这里使用的是一个conda虚拟环境)。

在这里插入图片描述

上图中,下半部分是远程文件同步的相关配置,下文会讲到这部分的细节,这里可以快速配置,配置后的效果就是当本地文件修改时,Pycharm会自动即将修改同步到远程服务器上,保证两边文件一致,从而不需要自己麻烦地在每次修改本地文件后手动进行文件传输了。

我们要做的操作就是上图中Sync folders点击右侧的小图标,可以看到,默认将远程项目映射到了一个临时文件夹中,一般我们不会这么做,而是在自己的家目录创建项目文件夹(如果已经有这个文件夹则直接指定即可)用于同步。我这边在家目录下创建了一个空文件夹用于项目的同步,配置好之后下面的Automatically upload可以勾选上,该功能表示本地修改后,自动同步到远程服务器。

在这里插入图片描述

在这里插入图片描述

上面的操作之后点击Finish然后点击Ok就将远程服务器创建完成了(这里由于我们文件同步勾选了Automatically upload所以会询问是否允许覆盖远程已有文件,点击Overwrite即可)。此时稍等片刻,等待下方的同步完成(如下图底部名为File Transfer的标签卡,该项内容开启了自动同步后最小化即可),此时点击Tools->Deployment->Browse Remote Host会打开远程可视化窗口,下图可以看到刚刚配置的远程文件夹高亮,这代表关联成功。

在这里插入图片描述

有时候,我们需要Pycharm自己创建一些文件夹用于同步和文件落地,可以把Options中的create empty directories开下来,它会自动创建空目录。操作入口是Tools->Deployment->Options选择下图的Create empty directories

在这里插入图片描述
此时,我们右击Run运行测试脚本,结果如下。看第一行其实已经看出来了,这里并没有涉及到本地脚本,无论是文件还是解释器。

首先,我必须解释一下,这里的远程解释器是如何执行本地脚本的,不然后面不容易讲明白。其实,通过文件同步,本地脚本被实时传输到了远程服务器,由于已经做了文件同步,所以文件映射已经建立完成,当你执行本地这个脚本的时候,其实是远程解释器执行远程服务器里那个同步过去的脚本,再把执行的命令行结果传输到本地而已。因此,配置远程解释器一定要配置文件同步,但文件同步也可以单独使用(当不需要远程解释器的时候)。

然后,下面的报错是项目路径配置的问题,注意, 当你远程开发的时候,所用到的一些数据文件和配置文件也要做修改(如数据集要采用云端数据集地址)。

在这里插入图片描述

远程文件同步

上面的远程解释器配置完成后,我们再单独讲讲如何配置文件同步(本地文件修改自动同步到远程服务器)。我们再次使用一个项目(没有进行远程配置)做演示。

注意,文件同步涉及到的所有配置都在导航栏的Tools->Deployment下,当我们只需要文件同步而不需要远程解释器的时候在这里配置就行。 我们打开Deployment中的Configuration,在Connection中配置远程连接,这里使用SSH连接。测试连接无误的情况下切换到Mappings选项卡配置远程文件夹。流程如下图。这里第三个选项卡Excluded Paths配置一下不需要同步的文件夹,比如缓存文件等。

现在,我们通过导航栏的Tools->Deployment->Browse Remote Host打开远程服务器可视化文件界面,找到我们文件同步时设置的远程服务器上项目对应的文件夹,会看到虽然有高亮对应但什么也没有同步过去,这就是文件同步配置失败了,这里首先打开Tools->Deployment->Automatic Upload,这样后面每次对本地文件有修改都会同步过去,但是当前远程并没有文件。这里手动同步一下,操作流程是右击项目根目录->Deployment->Upload,如下图,这是看日志可以看到同步成功,右侧文件可视化也出现了本地同步过去的文件。

在这里插入图片描述

有时候有需要自动创建文件夹的时候,可以把Options中的create empty directories开下来。

在这里插入图片描述

至此,文件同步也讲完了,更多时候,在一个新项目中远程解释器已经配置完成或者不需要配置远程解释器只需要配置文件同步,按照上面的配置也能完成。

补充说明

本文按照个人需求讲解了如何通过Pycharm实现远程开发,如果有问题,欢迎评论咨询,如果文章对你有所帮助,欢迎点赞收藏。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/173703.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月27日 上午8:12
下一篇 2026年3月27日 上午8:13


相关推荐

  • next和nextLine的区别

    next和nextLine的区别内容纯属总结,和CSDN上的很多搜索情况内容大致相同,都是正确可靠的。第一种情况:nextline()在前面,next()在后面privatestaticvoidt1(){Strings1,s2;Scannerscanner=newScanner(System.in);System.out.println("请输…

    2022年5月27日
    44
  • android自动化测试框架_GMS测试

    android自动化测试框架_GMS测试GMSP的测试已经开始一段时间了,这里记录一下跟O的不同之处,资料主要来自MTK官网。一、Case数量增加(以Pgo项目为例,64bit项目double)a、CTS测试增加8万条,module增至320b、增加CTS-INSTANT测试项目,module48,1.3万条(13338)、64bit13338,以实际为准;c、VTS测试增加约2…

    2025年9月18日
    5
  • java内存泄露原因_Java内存泄露的原因

    java内存泄露原因_Java内存泄露的原因Java 内存泄露的原因 1 静态集合类像 HashMap Vector 等的使用最容易出现内存泄露 这些静态变量的生命周期和应用程序一致 所有的对象 Object 也不能被释放 因为他们也将一直被 Vector 等应用着 这种情况可以通过 removeclear 方式释放对象 没有问题 2 数据库的连接没有关闭情况 包括连接池方法连接数据库 如果没有关闭 ResultSet 等也都可能出现内存泄露的问题 这是代码中经

    2026年3月16日
    2
  • MatchTitle 主程序入口

    MatchTitle 主程序入口MatchTitle 主程序入口

    2022年4月24日
    45
  • MySql 删除索引

    MySql 删除索引删除索引

    2026年3月18日
    2
  • java ee简介_Java EE 简介

    java ee简介_Java EE 简介JavaEE简介JavaEE基本架构JavaEE的诞生是为了解决传统C/S架构的弊端:客户端臃肿庞大,扩展性差等弊端。JavaEE将传统的两层结构细分为了四层。这四层分别是:Client层,Web层,Business层,EIS层JavaEE客户端JavaEE客户端层可分为以下几种:Web客户端,通常是浏览器呈现的网页,这种客户端成为轻量级客户端,因为他们不与…

    2022年7月7日
    19

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号