Pycharm远程开发教程

article/2025/5/14 7:17:15

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


http://chatgpt.dhexx.cn/article/I7iro4cU.shtml

相关文章

CSS+HTML+JS----开发简单个人网站

今天闲着没事花了几个小时写了个个人网站;在盒子布局上花了点时间。 个人网站共六个静态界面,每个界面都有隐藏的音乐,自动播放。 个人网站分为三个部分,登录界面,主界面,以及分界面。 登陆界面主要核心…

微信机器人开发,个人微信开发

由于自身在机器人方面滚爬多年,现在收藏几个宝藏机器人 推荐一下自己常用的机器人: 不得不吹爆这家伙,适合有技术开发的公司,可以自主开发所需要的功能!十分齐全

个人博客开发流程

成品:见公告》个人博客站点 1:列出博客大纲:用来干什么;为什么要做;怎么做; 2:列出博客的需求点 3:根据需求点整理出对应的技术文档 4:用workbench画出数据字典 5&#x…

微信小程序个人中心页面开发

目录 微信小程序创建项目配置底部导航栏 微信小程序滚动播放内容 微信小程序功能中心模块开发 微信小程序个人中心页面开发 微信小程序获取电话号码 微信小程序显示列表数据 微信小程序显示分页列表 微信小程序添加插屏广告 微信小程序添加激励式广告 最终效果可扫码查看 遇…

PHP简单实现个人网站

一、PHP简单实现个人网站 使用的技术: htmlcssjsjQueryphptable响应式布局 项目目录结构: 二、项目运行结果 1、首页 2、个人文章 3、喜欢的动画 4、喜欢的音乐 5、实现视频播放 三、项目总结与下载链接 本个人网站纯属个人开发,没有用到…

如何开发一个系统

文章目录 前言一、流程二、需求分析1、调研2、画图 三、系统设计1、架构2、模块设计3、画图 四、系统开发1、开发2、协作3、测试 总结体会 前言 作为一名大二学生,参加校内比赛做了一个绩效管理系统,所以写一下如何开发一个系统。 一、流程 制作一个系…

个人微信机器人开发

目前大多数公司中的消息通知使用邮件、短信、钉钉、企业微信等等,而微信或者QQ这种使用量较大的工具,通知和管理机制并不完善。特别是很多利用微信来进行客户管理沟通的人,例如我,只好借助微信机器人来实现通知和管理功能。 本篇…

手把手教你从零基础开始搭建个人网站

曾有不少人问过我怎么搭建自己的博客。其实搭建个人博客的方式有很多,有使用Git Page的,有使用一些博客平台的,也有自己购买网站空间或服务器搭建的,更有大神索性自己开发一套博客程序来用的。本文所介绍的方法全部基于Linux系统服…

手把手从零到有的个人网站开发

前言 很多人都想有一个自己的网站。那么,刚好Romki最近打算开始创建一个自己的个人网站。 就开始和我一起从零开始吧! 一、整个云服务器吧 Romki 这里买的是腾讯的云服务器,具体购买什么鸭子的服务器,如果大家强烈需要&#xff0…

【个人网站开发 · 记录三】制定开发方案阶段 —— 技术角度分析如何去做一个个人网站

前言 当下的自媒体时代,体现在一个爱折腾的程序猿身上,那么最好的方式莫过于 —— 搭建自己的个人网站。网站上可以有自己的个人介绍,技术博客,项目总结,生活分享等等。简直是COOL !(面试神器有…

【个人网站开发 · 记录二】UI设计阶段 —— 设计角度分析如何去做一个个人网站

前言 当下的自媒体时代,体现在一个爱折腾的程序猿身上,那么最好的方式莫过于 —— 搭建自己的个人网站。网站上可以有自己的个人介绍,技术博客,项目总结,生活分享等等。简直是COOL !(面试神器有…

个人网站开发——全栈项目开发日记

文章目录 第一种部署方式(前端打包到后端)打包前端后端 第二种部署方式(Nginx代理-推荐)nginx代理配置访问路径端口后端端口 服务器运行传到服务器在服务器后台运行 功能实现记录axios请求使后端响应数据对访问者ip获取对访问者ip…

c语言:输入字符串,并判断字符串的长度

c语言中表示输入数据的类型,其格式符和意义下表所示。 格式 字符意义 d 输入十进制整数 o 输入八进制整数 x 输入十六进制整数 u 输入无符号十进制整数 f或e 输入实型数(用小数形式或指数形式) c 输入单个字符 s 输入字符串 转义字符 转义字符是一种特殊的字符常量。…

C语言:字符数组的输入输出

目录 用printf输出 用scanf输入 用gets输入 用puts输出 用printf输出 输出方法1&#xff1a;printf 逐个字符输出。 void main(void){ char c[ ] "I am happy"; int i; for(i 0; i < 10; i){ printf("%c", c[i]); } pri…

c语言---字符输入

1 getchar() getchar接受一个字符 可输入任何字符 结束标志由自己决定,需在后面手动补全\0 输入 &#xff1a;abcd d 打印&#xff1a;6 2 fgets() fgets(); 函数原型 char *fgets(char *str, int n, FILE *stream) 输入读取&#…

C语言学习(十一)之字符输入/输出

文章目录 一、单字符I/O&#xff1a;getchar()和putchar()二、缓冲区2.1 什么是缓冲区2.2 为什么需要缓冲区2.3 缓冲区分类2.3.1 完全缓冲I/O2.3.2 行缓冲I/O 三、结束键盘输入3.1 文件、流和键盘输入3.2 文件结尾 四、重定向和文件4.1 重定向输入4.2 重定向输出4.3 组合重定向…

C语言_输出字符串和获取字符串

输出字符串和获取字符串 01——输出字符串 使用puts函数来输出字符串 使用printf函数来输出字符串 通过puts函数和printf函数都能够实现字符串输出 02——获取字符串 使用scanf函数来获取字符串 使用gets()函数来获取字符串. gets函数原型&#xff1a;char* gets(char *st…

c语言之printf函数输出字符数据

//用printf函数输出字符数据 #include <stdio.h> int main() {//定义两个变量char c a;int i 97;//输出变量%c以字符形式输出&#xff0c;%d以十进制整型形式输出printf("c%c,c%d\n", c, c);printf("i%c,i%d\n", i, i);return 0; } 运行结果&…

在C语言中怎样定义一个字符串并输入输出

在C语言中没有字符串类型&#xff0c;用字符数组处理字符串 字符数组定义&#xff1a;char 数组名 [常量表达式][常量表达式] 说明&#xff1a;一维字符数组&#xff0c;用于存储和处理一个字符串 。二维字符数组&#xff0c;用于同时存储和处理多个字符串 输入输出方法&…

用C语言输出一个字符串的所有子串

前言 啥是子串? 串中任意个连续字符组成的子序列称为该串的子串。 包含子串的串相应地称为主串。 ①空串是任意串的子串。 ②任意串是其自身的子串。 例&#xff1a;字符串"12"它的字串为"1",“2”,“12”,空串。共四个字串。 原理 懂了子串的概念我们…