您的位置:易学堂>日志记录>Pycharm如何连接远程服务器并debug调试

Pycharm如何连接远程服务器并debug调试

环境说明:本人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 所标记的地址)。如果有文件写入,写入的最后结果在远程服务器上,而不是在电脑上。如果有引入,也是按照远程服务器的路径引入的。

相关推荐