如何远程调试Python代码

本文介绍如何利用PyCharm的Deployment功能实现Python代码的远程调试。通过配置远程服务器、目录映射及自动同步功能,使得本地代码改动能即时同步到远程服务器并进行调试。

这是一篇小记。

平时使用python写的代码对外部依赖性都不复杂,这些代码在本地调试,运行没问题之后,就可以放到生产去跑了。然而,最近的一个项目,由于使用了一些内部服务,需要连接到内部的环境进行调试。
如果每次都修改代码之后,发布一次到内部环境运行测试,这样子操作流程略显繁琐了。于是乎,我就查阅了一些资料,发现我平时使用的Pycharm可以提供代码远程调试的功能,正好也可以解决我的问题。

首先来说一说代码远程调试。顾名思义,代码远程调试就是让我们可以在本地对远端的代码进行运行和输出日志检查,从而根据运行和日志情况,对代码进行修改,再重复这个过程,直到代码满足需求。
通常情况,我们需要手动去更新代码到远端,这个过程比较繁琐。而Pycharm提供了一个Deployment的功能,它将我们的本地代码和指定远端服务器代码做了映射。所有对本地代码产生的变化,都会自动或手动更新到远端服务器上,然后我们通过Pycharm自带的Terminal就可以进行代码运行和日志检阅了。

下面,来看看如何配置Pycharm的Deployment功能。

一、打开Deployment配置菜单

菜单栏==>Tools==>Deployment==>Configuration

wKioL1ch3m6wPMPtAAK8kol0DBg426.jpg

二、配置远端服务器

1、增加远端服务器

点击+号添加新的Server,在Name栏填入自定义名称,在Type栏选择代码同步的类型,默认是FTP,我们这里使用SFTP类型。

wKiom1ch3bOBmtwVAAFk7E2i0fg746.jpg

2、配置连接信息

添加Server之后,在新的配置页面填写红色指针指向的服务器连接信息。注意Root path填写的是你代码同步的相对根目录。

wKiom1ch3cGCTtsGAAKLdE_x1UI478.jpg

3、配置目录映射信息

Local path框为你本地的项目代码目录
Deployment path on server 'test'框为代码在远程服务器的代码目录

wKioL1ch3p_Cp78DAAIHsuId-8A524.jpg

三、配置变更文件自动同步

菜单栏==>Tools==>Deployment==>Options

wKioL1ch3q-Bhsh8AAK5Ij3t7MY298.jpg


将配置项Upload changed files automatically to the default server选择为On explicit save action,这样子每次我们按command+s的时候,修改的代码就可以自动同步到远端了。

wKiom1ch3fHhSfYrAANfqGMulUQ729.jpg

四、使用SSH Terminal

经过如上的配置,Deployment功能就已经配置完毕了,代码已经可以自动同步到远端了。此时,我们可以使用SSH Terminal,进行进程启动和日志检阅。
菜单栏==>Tools==>Deployment==>Start SSH Session

wKiom1ch3gDyk2CWAALd37xoRPU562.jpg


在弹出的选框中,选择你需要连接的远端服务器。

wKioL1ch3tuR9bfLAADk30ua0tI756.jpg

到此,我们的python代码的远程调试功能就已经设置好了。


### 如何通过SSH对远程服务器上的Python代码进行调试 #### 工具准备 为了实现这一目标,需要使用Visual Studio Code (VSCode),并且安装`Remote - SSH`插件[^3]。 #### 配置过程 在VSCode中完成`Remote - SSH`扩展的安装之后,在界面左侧会出现新的图标。对于初次配置而言,需点击新增加的“+”号按钮,并于弹出框内填入欲连接之Linux服务器对应的用户名及其IP地址信息[^2]。此外,还可以利用设置选项中的`.ssh/config`文件来进行更详细的设定工作,比如定义主机别名以便简化后续操作流程;同时也可以在此处配置无密码登录等功能以提高效率和便利性。 #### 设置Debug Configuration 针对具体项目创建或修改`.vscode/launch.json`文件来指定调试器所需的各项参数。当涉及到Conda虚拟环境时,则应在该JSON对象内部适当位置指明解释器路径以及任何必要的启动脚本等细节[^1]: ```json { "version": "0.2.0", "configurations": [ { "name": "Python: Remote Debug", "type": "python", "request": "launch", "program": "${workspaceFolder}/your_script.py", // 替换成实际要执行的py文件路径 "console": "integratedTerminal", "justMyCode": false, "envFile": "${workspaceFolder}/.env", // 如果有额外环境变量需求的话可选配此项 "pythonPath": "/path/to/env/bin/python" // Conda环境中Python解析器的具体位置 } ] } ``` 上述配置项里的`pythonPath`字段应当指向远端机器上已激活的目标Conda环境下Python二进制文件的确切所在目录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值