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 所標記的地址)。如果有文件寫入,寫入的最後結果在遠程服務器上,而不是在電腦上。如果有引入,也是按照遠程服務器的路徑引入的。

到此這篇關於Pycharm 如何連接遠程服務器並debug調試的文章就介紹到這瞭,更多相關Pycharm 連接遠程服務器內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: