Pycharm 如何连接远程服务器并debug调试
作者:speedup奔跑的蜗牛
环境说明:本人pycharm是2021.3.3,其它版本设置界面可能略有差别
使用的是企业版,不知道社区版是否支持(据了解可能不支持)
1 设置链接的账号密码:
依次点击 File--》Settings--》Tools--》SSH Configurations 。
在界面中依次输入
host :远程服务器地址
port :协议端口号
user name:用户名
password :密码
然后点击ok保存。
2.1 终端界面连接服务器:
如下图所示,依次点击Terminal--》下拉菜单,选择要连接服务器(上个部署已经设置好的SSH账号密码会在此处显示),即可进入远程服务器的bash界面。
或者依次点击Tools--》Start SSH Session--》选择要连接的服务器,进入到远程服务器的终端界面。
在此界面可以执行linux的各种命令。
2.2 使用pycharm查看linux服务器上的各种文件,并且使用pycharm编辑器界面直接修改和保存代码。
依次点击Tools--》Deployment--》Configuration,出现如图所示的配置界面。
箭头1是在步骤1中设置的ssh连接账号密码,如果在步骤1中未设置,点击箭头2的加号也可以设置ssh连接账号密码。
Type:连接的协议,此处选择SFTP(文件传输协议,此协议支持文件的上传和下载)
SSH configuration: 选择ssh连接的账号密码
Root path:选择要显示远程服务器的文件的路径,“/”表示显示远程服务器的根路径。
注意:Visible only for this project 这个不要勾选。
设置完成后,依次选择Tools--》development--》Browse Remote Host,会出现如下图所示的显示服务器文件的列表。
在箭头处的下拉按钮选择在configuration中设置的连接选项,可以选择连接不同的服务器。这样可以像pycharm修改本地代码一样对远程linux服务器进行修改和保存。到此为止这种方式只能对远程服务器的代码进行编辑和修改,并不能运行或者debug调试代码。
备注:他这个修改远程linux服务器代码的背后逻辑(真实执行过程)其实也是将远程服务器下的代码下载、暂时缓存到本地,在本地修改好了之后再上传到远程服务器,从而实现对其修改的目的。
3 使用pycharm连接远程服务器,使用远程服务器环境,实现代码在本地的运行、调试
思考:pycharm能在本地执行代码是因为pychram能读取本地的运行环境,想要执行在远程服务器的代码就需要:
(1)连接到远程服务器
(2)并且能够准确找到远程服务器的环境位置,从而使用此环境来编译执行本地代码。
这样就不需要本地也安装和远程服务器一样的环境,使用远程服务器的环境,在本地来运行、调试代码。
具体步骤:
3.1 配置连接:
依次点击Tools--》Deployment--》Configuration,出现如图所示的配置界面。
具体参数和配置参考2.2。
3.2 配置映射关系
点击Mappings,界面如下所示:
Local path:本地项目所在目录。
Deployment path on server:远程服务器上项目所在目录。这里的目录是相对于上一步设置的Root path而言的,它和Root path 路径共同拼接成项目的具体路径。如图上两图所示。
项目的绝对路径为: /home/serverai/lee/nomal_test
3.3 同步代码
点击 Tools(工具),点击 部署Deployment(部署)
如果是想要将本地的代码同步到远程服务器,点击Upload to xxx
如果是想从远程服务器拉代码,则点击Download from xxxx(xxxx是远程主机的名称)
如果勾选了Automatic Upload (always),那么,你在本地修改了代码,pycharm会自动将代码同步到远程服务器上(还是手动同步靠谱)
3.4 配置远程解释器作为运行环境
(1)点击左上角 Files--》Settings ,点击Project Interpreter,点击Add。
(2) 选择SSH Interpreter,选择Existing server configuration,选择远程服务器
(3) 配置Python解释器所在路径,找到远程服务器环境的路径,粘贴到此处。
3.5 在打开本地代码,进行运行调试!!!!
(打开远程服务器代码后运行调试会报错[Errno 2] No such file or directory)。
上两张图:
我本地的环境中根本没装pytorch,也没有gpu。以上证明调用远端服务器程序调试本地代码功能完成。
写在最后的测试小tip
在本地执行代码,相当于在本地和远程同时执行了代码(远程路径为3.2中mapping页面Deployment path 所标记的地址)。如果有文件写入,写入的最后结果在远程服务器上,而不是在电脑上。如果有引入,也是按照远程服务器的路径引入的。
到此这篇关于Pycharm 如何连接远程服务器并debug调试的文章就介绍到这了,更多相关Pycharm 连接远程服务器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!