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实现远程开发,如果有问题,欢迎评论咨询,如果文章对你有所帮助,欢迎点赞收藏。

Pycharm远程开发教程相关推荐

  1. PyCharm远程开发调试

    环境列表: 本地: OS:Win10 工作目录:C:\workspace 服务端: OS:CentOS7 工作目录:/home/workspace IP:192.168.44.130 如果你VM中Li ...

  2. pycharm远程开发上传文件No files or folders found to process

    本文心情不好,介意的就不要往下看了.(红字部分为解决方法) 使用pycharm远程开发,就地新建了一个项目,原以为像之前做过的n次一样很简单,没想到死活同步不了文件!!! [2020/2/17 21: ...

  3. PyCharm远程开发调试,使用外部(远程服务器)虚拟环境

    环境列表: 本地: OS:Win10 工作目录:C:\workspace 服务端: OS:CentOS7 工作目录:/home/workspace IP:192.168.44.130 如果你VM中Li ...

  4. pycharm远程开发python程序

    在windows中写代码,然后在linux下测试执行,是很多人的最佳选择,毕竟,linux不是一般人能玩转的. 下面讲讲如果使用pycharm进行远程开发,实现在windows中写代码,在linux下 ...

  5. pycharm windows 服务器_环境配置 | Pycharm远程开发的环境配置

    目的:同局域网中的两台电脑,Mac上看视频学习编程 + 当服务器跑代码:Windows上使用Pycharm写代码.学习远程开发 (当前底子有限,很多操作可能存在理解偏差) Mac上代码存放路径:~/O ...

  6. pycharm远程开发项目

    你是不是在学习python的时候在使用虚拟机系统进行开发,来回切换很是不方便,那么今天给大家推荐一个pycharm强大的功能. 接下来我们利用这个django项目创建一个子app,测验一下是否真的能如 ...

  7. pycharm远程开发

    需求:实现在Windows10上开发,在centos7上运行. 一.配置pycharm的连接 Tools --> Deployment --> Configuration... --> ...

  8. (最新+详细+Pycharm远程调试GUI程序)解决qt.qpa.xcb: could not connect to display问题

    (最新+详细+Pycharm远程调试GUI程序)解决qt.qpa.xcb: could not connect to display问题 出现原因 解决方法 步骤 下载MobaXTerm 连接服务器 ...

  9. 搭建3款远程开发环境:Pycharm、Jupyter notebook以及code-server

    由于疫情人们对远程办公的渴望达到了巅峰.但在经历了多次试错与崩溃后,才发现能有一款与自己合拍的远程编程工具是多么的重要啊! 很多花费半天时间的事情,也许10分钟就能轻松搞定.本文就为大家介绍3个能在1 ...

最新文章

  1. python 视频播放 拖动_视频画中画效果,拖动进度条可以seek到相应视频帧显示
  2. Confluence 6 管理协同编辑
  3. 关于共享单车,说点什么
  4. 图片批量重命名编号_碾压市面上90%“批量改名、批量重命名软件”
  5. hdu 5157(manacher+前缀和+树状数组)
  6. AtCoder - 3954 Painting Machines
  7. webapi 获取请求参数
  8. 10-多写一个@Autowired导致程序崩了
  9. var模型的matlab实现_Eviews中VAR模型的操作、脉冲响应分析和方差分解的实现
  10. url、href、src
  11. 基于差分分级和关联规则挖掘的气象数据关联性分析实战
  12. 设计模式之GOF23组合模式
  13. python 网页上显示数据_Python实战【第二节】在网页上显示信息
  14. arcgis中python计算面积的表达式_解析ArcGis的字段计算器(一)——数值型数据计算,从“面积计算”开始...
  15. mro python_python中的MRO算法[转]
  16. html背景图片在文字下面,背景图片加文字的HTML怎么写
  17. 如何判断万能打印机的好坏呢?
  18. 计算机视觉SIFT算法详解
  19. r语言做绘制精美pcoa图_PCOA分析
  20. 纷享销客百思特 | 数字化营销赋能企业新增长沙龙圆满落幕

热门文章

  1. 单片机结构和原理讲解!
  2. 用Keil写一个8路流水灯,两侧各一个LED同时亮起,之后依次向中间聚拢,然后在展开,接着,在8个灯闪三次,为一次循环...
  3. Python 引入模块后VsCode出现问题提示 “could not be resolved” 解决方案
  4. IDEA2019 Java连接PostgreSQL数据库实现基础功能增删改查
  5. 搭建属于自己的数字IC EDA环境(五):搭建FPGA自动化环境(Linux下vivado Tcl脚本自动化开发),业余IC设计流程与通路
  6. centos 安装java8_Centos7安装jdk8
  7. Win10怎么把磁盘格式化成exfat格式_使用命令格式化磁盘为exfat的方法
  8. TCP ACKed unseen segment TCP Previous not captured
  9. n76e003引脚图_老司机带你入门新塘N76E003单片机
  10. 用直接分解法求方程组的C语言程序,c语言编程求解线性方程组论文