不能不會的遠程調試技巧


image.png


這一篇是很早之前的文章,此次從新發布,是想將幾個調試工具集中講一下。有的朋友已經看過,可是沒有關係。
服務器

通常狀況下,咱們開發調試都是在我的PC上完成,遇到問題,開一下 Pycharm的調試器,很快就能找到問題所在。app

可有些時候,項目代碼的運行會對運行環境有依賴,必須在部署了相關依賴組件的服務器上才能夠運行,這就直接致使了咱們不能在本地進行調試。ssh

對於這種特殊的場景,就我所知,有以下兩種解決方案:ide

  • pdb工具

  • Remote Debugspa

本篇文章會先講第二種方案,它是 專業版Pycharm 纔開放的功能,須要你安裝專業版的Pycharm,具體升級破解步驟,請自行 Google,這裏不涉及。3d

遠程調試的意思,是讓咱們能夠在咱們在 PC 上用 Pycharm 的圖形化界面來進行調試代碼,它和本地調試沒有太大的區別,原來怎麼調試的如今仍是怎麼調試。調試

區別就在於,本地調試不須要事前配置,只要你的代碼準備好了,隨時能夠開始 Debug 。而遠程調試須要很多前置步驟,這些設置過程,也是本文的主要內容。blog

1. 新建一個項目

首先,要在Pycharm中新建一個空的項目,後面咱們拉服務器上的項目代碼就會放置在這個項目目錄下。我這邊的名字是NOVA,你能夠本身定義。ip

image.png

2.  配置鏈接服務器

Tools->Deployment->configuration

image.png


添加一個Server

  • Name:填你的服務器ip

  • Type:設定成SFTP

點擊OK後,進入以下界面,你能夠按個人備註,填寫信息:

  • SFTP host:公網ip

  • Port:服務器開放的ssh端口

  • Root path:要調試的項目代碼目錄

  • Username:登錄服務器所用的用戶

  • Auth type:登錄類型,這裏選密碼

  • Password:登錄密碼,能夠選擇保存密碼

這裏請注意,要確保你的電腦能夠ssh鏈接到你的服務器,不論是密鑰登錄仍是密碼登錄,若是開啓了白名單限制要先解除。

image.png

填寫完成後,切換到Mappings選項卡,在箭頭位置,填寫\

image.png

以上服務器信息配置,所有正確填寫完成後,點擊OK

接下來,咱們要鏈接遠程服務器了。
Tools 
-> Deployment -> Browse Remote Host

image.png

3.  下載項目代碼

若是以前填寫的服務器登錄信息準確無誤的話,如今就能夠看到遠程的項目代碼。

選擇下載遠程代碼要本地。

下載完成提示。

如今的IDE界面應該是這樣子的。


4. 下載遠程解釋器

爲何須要這步呢?

遠程調試是在遠端的服務器上運行的,它除了依賴其餘組件以外,還會有一些不少Python依賴包咱們本地並無。

進入 File -> Settings
按圖示,添加遠程解釋器。

image.png

填寫遠程服務器信息,跟以前的同樣,再也不贅述。

image.png

點擊OK後,會自動下載遠程解釋器。若是你的項目比較大,這個時間可能會比較久,請耐心等待。

5. 添加程序入口

由於咱們要在本地DEBUG,因此你必定要知道你的項目的入口程序。若是這個入口程序已經包含在你的項目代碼中,那麼請略過這一步。

若是沒有,就請本身生成入口程序。

好比,我這邊的項目,在服務器上是以一個服務運行的,服務的入口是Service文件:/usr/lib/systemd/system/openstack-nova-compute.service

image.png

看到那個ExecStart沒有?那個就是咱們程序的入口。
咱們只要將其拷貝至咱們的Pycharm中,並向遠程同步該文件。

image.png

6. 調試前設置

開啓代碼自動同步,這樣,咱們對代碼的修改Pycharm都能識別,而且爲咱們提交到遠程服務器。

開啓 Gevent compatible,若是不開啓,在調試過程當中,極可能出現沒法調試,或者沒法追蹤/查看變量等問題。


7.  開始調試代碼

在你的程序入口文件處,點擊右鍵,選擇Debug便可。

若是你的程序入口,須要引入參數,這是常常有的事,能夠的這裏配置。

配置完點擊保存便可。

image.png
相關文章
相關標籤/搜索