網站首頁 編程語言 正文
一、介紹
Python遠程調試,即在遠程機器上運行python代碼在本地進行調試,之前文章里的方式方法已經out,現在更新為當前版本已經成功實現遠程調試的新內容。
依賴環境:
- 本地Pycharm:PyCharm 2022.1.3(Professional Edition)
- IP:192.168.30.111
- 遠程Ubuntu:VMware Ubuntu 20.04.03
- IP:192.168.30.132
二、安裝
遠程主機安裝:pydevd-pycharm庫,且需要安裝指定版本:
pip3 install pydevd-pycharm~=221.5921.27 -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
三、配置
3.1 PyCharm端配置
1.點擊PyCharm菜單欄:Edit Configurations
2.在Run/Debug Configurations
中點擊+
加號按鈕,在彈出列表中選擇Python Debug Server
3.需要配置字段如下:
- Name:ubuntu python
- IDE host name:192.168.30.111
- Port:2233
4.點擊OK
保存該配置
至此,本地端PyCharm配置完成,配置無誤可以在菜單欄看到ubuntu python這個配置,且圖標無正常狀態,如果上述配置項有誤,則會展示打紅叉標記的圖標,比如配置錯誤的端口號。
3.2 Ubuntu端配置
遠程環境需要的配置主要是修改被調試的代碼文件,在代碼中增加相關配置:
- 被調試代碼文件:/home/test/super2.py
- 需要增加的配置:
import pydevd_pycharm pydevd_pycharm.settrace('192.168.30.111', port=2233, stdoutToServer=True, stderrToServer=True) class A: def __init__(self): self.n = 2 def add(self, m): print('self is {0} @A.add'.format(self)) self.n += m class B(A): def __init__(self): self.n = 3 def add(self, m): print('self is {0} @B.add'.format(self)) super().add(m) self.n += 3 b = B() b.add(2) print(b.n)
需要導入遠程調試庫,配置信息需要和PyCharm端配置的內容保持一致:
至此,遠程被調試的代碼需要的配置完成。
四、實際調試
1.在本地PyCharm端,打開調試服務,即點擊菜單欄中ubuntu python
后的Debug ubuntu python
按鈕:
2.啟動成功,會出現等待連接的提示信息:
3.此時,我們需要在Ubuntu端,啟動被調試的代碼:python3 super2.py
,運行成功后Ubuntu端不會里面執行代碼,需要等待遠程PyCharm端開始調試過程,才會執行代碼并打印結果,而PyCharm端會在Console
下展示連接成功的提示:Connected to pydev debugger (build 221.5921.27)
4.此時我們會看到PyCharm彈出了一個提示,這個提示里的內容就是我們調試的是遠程文件,而本地沒有與之對應的文件,可以通過提示給出的三個解決方案進行解決,這里我選擇了:Download
選項
5.最后開始執行具體的調試即可:
原文鏈接:https://blog.csdn.net/zhaoxz1985/article/details/126767888
相關推薦
- 2022-08-05 Redis實現分布式鎖的五種方法詳解_Redis
- 2022-05-26 Flutter?Drawer抽屜菜單示例詳解_Android
- 2022-11-29 Android?Handler?runWithScissors?梳理流程解析_Android
- 2022-06-08 4. Golang常用Http庫及Gin框架入門
- 2023-04-01 C++11中強類型枚舉的使用_C 語言
- 2023-02-27 一文帶你學習C/C++中的<Windows.h>庫_C 語言
- 2022-09-21 Android開發之AAR文件的生成與使用步驟_Android
- 2023-01-10 SpringEvent優雅解耦時連續兩個bug的解決方案_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支