PyCharm 配置遠程python解釋器和在本地修改服務器代碼

PyCharm 配置遠程python解釋器和在本地修改服務器代碼

最近在學習機器學習的過程當中,經常須要將本地寫的代碼傳到GPU服務器中,而後在服務器上運行。以前的作法一直是先在本地寫好代碼,而後經過FileZilla這樣的文件傳輸工具來將寫好的文件傳到服務器,再經過ssh工具遠程鏈接到服務器,執行相應的python腳本。這樣的方式十分繁瑣,效率很低。今天聽到朋友提到了配置遠程解釋器python

使用場景

先說說本身的使用場景,我是在什麼狀況下,須要將IDE配置成這樣的環境來方便個人工做。ubuntu

首先,我須要在本地機子上寫python代碼,可是由於是機器學習相關的一些代碼,有時候本機跑可能會很慢,或者根本跑不下來。而此時,我還有一臺可用的服務器,上面配置了相應的python3環境和相應的機器學習庫,好比tensorflow,keras,tflearn等等。所以一般須要將本地寫好的代碼上傳到服務器上,在服務器上運行。因爲代碼能力渣渣,因此經常須要反覆修改代碼,而直接在服務器上修改代碼不是很方便。所以,我但願能夠像下面同樣操做:服務器

  1. 我在服務器上有一個工做目錄,我但願能夠直接在我本地機子上修改工做目錄下面的代碼文件
  2. 由於Pycharm能夠配置遠程python解釋器,因此我但願能夠直接在本地的機子上運行修改的代碼,而且直接在本地機子查看運行的結果,而不用ssh到遠程服務器在執行代碼。
  3. 具體來講就是,我能夠直接在本地上編寫代碼,而後直接點擊pycharm的綠色小三角執行代碼,而且這個執行是由遠程服務器的python解釋器執行的,而不是在我本地機子上配置的python環境下執行。

配置過程

本機環境

操做系統:win10app

IDE:Pycharmssh

遠程服務器

操做系統:ubuntu14.04機器學習

配置了ssh,可使用ssh進行遠程登錄工具

配置Deployment

首先,在pycharm的菜單欄依次找到:Tools > Deployment > Configuration.學習

經過菜單欄打開Deployment設置頁面

而後能夠看到以下的配置頁面,具體各配置在圖片中說明:spa

配置Deployment的Connection

而後打開Deployment的Mapping選項卡:操作系統

這樣,Deployment的配置就完成了。這個配置完成了以後,實際上是至關於配置了一個ftp工具能夠鏈接到服務器上,從而能夠查看和修改服務器上的文件。你能夠經過Tools > Deplotment > Browse Remote Host來打開相應的RemoteHost面板,這個面板顯示的就是服務器上的文件,顯示的範圍是你在Deployment中的Connection選項卡下配置的Root path路徑下的文件及文件夾。

代開RemoteHost面板

你能夠直接在RemoteHost面板裏雙擊某個文件而且直接進行編輯。雙擊某個文件後你能夠看到編輯區域的頂部有一個橫條,而且橫條的右邊有三各按鈕,分別是比較,撤銷和上傳操做。你在這裏面編輯文件以後,能夠直接點擊上傳按鈕,就會提交到服務器了。可是其實不推薦直接在這裏修改代碼,後面的使用流程會說到。

直接編輯RemoteHost裏的文件

以上的配置,就能夠直接在PyCharm裏看到服務器上的文件,我感受就像是直接在IDE裏集成了一個FTP傳輸工具。

配置遠程python解釋器

這裏主要講的是如何配置遠程python解釋器。

首先,經過File > Settings,打開設置選項卡。

在設置選項卡里,點擊"Project:項目名"這個按鈕,在展開的小項裏再點擊Project Interpreter,右邊就會變成Interpreter的配置頁面。

點擊Interpreter配置頁面的小此輪按鈕,而後再選擇add Remote。

彈出以下彈窗並配置相應的信息。

通過以上步驟,你的遠程解釋器就配置好了。這時,你就能夠直接點擊小三角按鈕,調用遠程服務器上的python解釋器來運行代碼。可是在此,你還須要看看下面的使用流程。若是你直接雙擊RemoteHost面板裏的文件,而後點擊小三角運行是會報錯的,可能會提示:

No such file or directory

使用流程

在配置中也參考了不少其餘文章,可是有些文章仍是沒有講清楚具體的流程,所以我把本身認爲可能「正確」的流程記錄一下。

在介紹Deployment配置的時候,咱們講到了Mapping選項卡的配置。這個配置將本地的一個路徑映射成了服務器上的一個路徑,所以,在這個文件夾下的文件和服務器上的文件是同步的,固然,須要你在本地修改的時候upload到服務器或者設置自動upload。

在這裏,個人mapping配置以下:

local path Deployment path on server
E:\workspace\remotespace xxxx/workspacexhh

首先,咱們在pycharm中經過 File > open... 來打開一個新的項目,項目路徑就選擇上面的local path路徑。

在Project窗口中就能夠看到打開了這個項目,當前這個項目仍是空的,裏面什麼也沒有。

而後,咱們打開RemoteHost小窗口,在test.py文件上右鍵,再選擇Download from Here,文件就會下載到本地了。返回到Project小窗口,就能夠看到test.py。其餘的文件相似,若是有父目錄,他會將父目錄也一塊兒下載下來,因此文件和路徑都會和服務器保持一致。

這樣,你就能夠在本地編輯test.py文件。

在編輯完成後,你能夠在文件上右鍵或者直接在編輯區域右鍵,選擇upload to... 將文件上傳到服務器,這樣就能夠更新服務器端的代碼了,而且保持了和本地代碼一致。

此時,點擊綠色小三角運行代碼,能夠看到相應的輸出。可是看看控制檯的輸出,能夠發現,python解釋器不是本地的,而跑的文件也不是本地。

上面就是整個從服務器下載文件至本地,在本地修改文件,將文件上傳至服務器,而後直接在本地運行的整個過程。

在這個過程當中,也能夠發現,通過這樣的配置,咱們的代碼如今一共有三個版本:一個是本地代碼,一個是服務器上的代碼,還有一個是RemoteHost面板中的代碼(這個地方的代碼若是直接編輯了,其實也能夠提交到服務器,可是不能直接運行)

因此,若是經過上面的配置進行遠程調試的話,我認爲大體流程應該是下面這樣:

  1. 在RemoteHost面板中,選中想要修改的代碼,而後右鍵點擊Download from here將內容下載至本地(這個本地是你在配置Deployment時設置的本地文件夾)。
  2. 在本地(這個本地是你在配置Deployment時設置的本地文件夾)修改你的代碼,修改完成後在編輯區域或者文件名上右鍵,選擇upload to...來提交到服務器。
  3. 在提交以後,你能夠像普通調用本地解釋器同樣的直接運行本地的這個文件(但其實運行的是服務器的文件)

在這裏,雖然RemoteHost裏的文件能夠直接編輯,可是並不建議這麼作,由於這裏編輯以後並不能直接運行。

相關文章
相關標籤/搜索