1. 程式人生 > 實用技巧 >Pycharm遠端開發教程

Pycharm遠端開發教程

Pycharm遠端開發教程

最近專案中使用到了Pycharm的遠端開發,記錄一下具體的使用方式,本文涉及到的操作均為Pycharm專業版(環境為Win10和Ubuntu16),社群版功能是否這麼豐富我不確定,使用學生郵箱(.edu字尾)註冊Jetbrains的賬號可以免費使用Pycharm專業版。

使用場景

往往,算力強大的GPU伺服器是沒有圖形化介面的或者圖形介面很不方便,我們習慣在自己的機器上編寫程式碼,然後在伺服器上執行程式。在過去,這種需求我是通過ssh遠端連線後文件傳輸,然後通過命令列執行指令碼實現的。顯然,這種稍微改動就要進行一次檔案傳輸的方法,略顯低效,作為一個全能IDE,Pycharm為開發者提供了方便的遠端開發功能,包括檔案修改的自動同步、遠端使用直譯器等功能。

遠端直譯器

曾經的Pycharm只支援遠端同步檔案,這部分功能由導航欄Tools->Deployment模組設定,不過,現在,Pycharm也支援只配置遠端直譯器,也就是說,我可以通過遠端直譯器執行我寫的Python指令碼,然後執行結果在本地顯示出來,這樣對本地開發用機器的算力要求就會很低。

下面,我們來看如何配置遠端直譯器,我這邊以一個已經寫完的專案為例。

在這裡插入圖片描述

首先,我們在Pycharm介面中點選左上角的File選項卡,然後選擇Settings進入設定頁面,找到如上圖所示的直譯器配置頁面,然後點選新增直譯器(Python通過直譯器來定位不同的Python虛擬環境)。

在這裡插入圖片描述

接著,選擇SSH Interpreter

來新增遠端直譯器,配置如上圖,依次填入伺服器的IP地址、埠(Pycharm的遠端均依賴SSH服務,所以埠為22,務必保證遠端SSH服務開啟)和登入用的使用者名稱。

在這裡插入圖片描述

隨後,點選Next通過上述的使用者名稱對應的密碼或者金鑰登入遠端伺服器(我這裡使用的密碼)。繼續點選Next之後,如果密碼正確,就能訪問到下面這個頁面,此時會預設定位系統的Python直譯器,請手動找到自己需要的環境的直譯器(我這裡使用的是一個conda虛擬環境)。

在這裡插入圖片描述

上圖中,下半部分是遠端檔案同步的相關配置,下文會講到這部分的細節,這裡可以快速配置,配置後的效果就是當本地檔案修改時,Pycharm會自動即將修改同步到遠端伺服器上,保證兩邊檔案一致,從而不需要自己麻煩地在每次修改本地檔案後手動進行檔案傳輸了。

我們要做的操作就是上圖中Sync folders點選右側的小圖示,可以看到,預設將遠端專案對映到了一個臨時資料夾中,一般我們不會這麼做,而是在自己的家目錄建立專案資料夾(如果已經有這個資料夾則直接指定即可)用於同步。我這邊在家目錄下建立了一個空資料夾用於專案的同步,配置好之後下面的Automatically upload可以勾選上,該功能表示本地修改後,自動同步到遠端伺服器。

在這裡插入圖片描述

在這裡插入圖片描述

上面的操作之後點選Finish然後點選Ok就將遠端伺服器建立完成了。不過,如果你是採用我這種方法,此時應該會報一個"No files or folders found to process",這是什麼問題我們會在下面具體描述和解決。

遠端檔案同步

上面的遠端直譯器配置完成後(這裡其實遠端直譯器已經配置完成了,之所以無法正常執行是檔案同步的問題),會出現上一節最後出現的錯誤,此時本地右擊任意指令碼執行,會出現類似下面的報錯,意思很明顯,無法開啟遠端伺服器的該指令碼檔案。

在這裡插入圖片描述

首先,我必須解釋一下,這裡的遠端直譯器是如何執行本地指令碼的,不然後面不容易講明白。其實,通過檔案同步,本地指令碼被實時傳輸到了遠端伺服器,由於已經做了檔案同步,所以檔案對映已經建立完成,當你執行本地這個指令碼的時候,其實是遠端直譯器執行遠端伺服器裡那個同步過去的指令碼,再把執行的命令列結果傳輸到本地而已。

現在,我們通過導航欄的Tools->Deployment->Browse Remote Host開啟遠端伺服器視覺化檔案介面,找到我們檔案同步時設定的遠端伺服器上專案對應的資料夾,會看到什麼也沒有同步過去,這就是檔案同步配置失敗了,這裡重新配置一下。

注意,**檔案同步涉及到的所有配置都在導航欄的Tools->Deployment下,當我們只需要檔案同步而不需要遠端直譯器的時候在這裡配置就行。**我們開啟Deployment中的Configuration,確認Connection配置無誤的情況下切換到Mappings選項卡重新配置遠端資料夾。配置後,右擊專案根目錄,依次選擇Deployment->Upload to ...即可,此時就會發現同步成功。

在這裡插入圖片描述

此時再次執行指令碼,就會成功,下圖其實執行已經成功了,報錯是因為指令碼邏輯有問題。

在這裡插入圖片描述

有時候有需要自動建立資料夾的時候,可以把Options中的create empty directories開下來。

在這裡插入圖片描述

至此,檔案同步也講完了,更多時候,在一個新專案中遠端直譯器已經配置完成或者不需要配置遠端直譯器只需要配置檔案同步,安裝上面的配置也能完成。

補充說明

本文按照個人需求講解了如何通過Pycharm實現遠端開發,如果有問題,歡迎評論諮詢,如果文章對你有所幫助,歡迎點贊收藏。