情境是這樣的
我想在 Windows 上使用 JetBrains 的 IDE - PyCharm 作開發
但是在遠端的 Linux 上執行開發好的 Python 作測試
基本上 JetBrains 的文件算是寫得蠻清楚的
首先先看一下 Linux 上的環境大概是怎樣
我以一台 AWS EC2 的機器當作遠端的 Linux
怎麼開 AWS EC2 跟怎麼連上開好的 EC2 我就不說明了
可以去看 AWS 的文件 [Launch your instance][Connect using WSL]
還有一個等等會用到的 [Connect using PuTTY]
裡面有教怎麼用 PuTTYgen 把 private key 從 .pem 轉出 .ppk 檔
後面 PyCharm 連線時會需要 .ppk 檔
首先,在遠端的 Linux 上安裝好 Python 3.7.9 以及作好 venv 的設定
我們放了一個測試的 mytest.py 在 /home/ec2-user/ec2_python3_workdir 中
當作遠端的環境
遠端的 Linux |
接著啟動 PyCharm 開啟本機的對應的資料夾
我的情境是本機與遠端的資料夾
是同一個 repository 的 working copy
(不過後來發現其實遠端不必是 git 的 working copy)
啟動 PyCharm 選擇開啟本機資料夾 |
進入後可以發現有 Python interpreter 設定的警告訊息
接著進入 File 選單開啟設定
選擇 File -> Settings |
進入設定之後,點選 Python Interpreter 項目
在右邊的區塊可以看到 Python Interpreter 的下拉選單顯示 "<No Interpreter>"
所以我們點擊選單右邊的齒輪按紐
準備新增一個 Python Interpreter
新增 Python Interpreter |
新增的時候選擇 SSH Interpreter
在介面上點擊 Existing server configuration 右邊的 "..." 按鈕
建立新的 SSH configuration
建立 SSH configuration |
進入到 SSH Configurations dialog 後
點擊左上角的 "+" 可以新增 SSH configuration
在右邊的連線資訊中輸入 EC2 的 FQDN 與 User name
Authentication type 選 Key pair 後
在 Private key file 中填入一開始我們轉換好的 .ppk 檔
填入遠端 Linux 連線資訊 |
按下 Test Connection 按鈕
確認填入的資訊是可以成功連上遠端 Linux 機器的
接著按下 OK 直到回到 SSH Interpreter 那個 dialog 後按 Next
測試連線成功 |
下一步是設定遠端 Linux Python 的路徑
我們因為有用 venv 的關係
所以路徑設定為 /home/ec2-user/ec2_python3_workdir/.venv/bin/python3
這裡可以直接瀏覽遠端 Linux 上的檔案系統
選好後按下 OK
選擇遠端 Linux 要使用的 Python interpreter 路徑 |
再來設定本機與遠端同步的資料夾
就設定到 /home/ec2-user/ec2_python3_workdir
這個設定是讓之後在本機上的修改
都會上傳到遠端 Linux 的這個路徑中
設定好後就一路 OK 到底
然後回到原本 Project 的介面
設定同步資料夾 |
這時候可以打開 Remote Host 的視窗
展開到我們設定同步的資料夾時
可以看到綠色的 highlight
每次修改本機檔案後儲存
可在右下角 File Transfer 視窗看到 PyCharm 在幫我們上傳
本機編輯後可自動上傳至遠端 Linux |
最後就是按下執行
在左下角的 Run 視窗能看到執行結果
也可以透過右邊 Remote Host 視窗開啟遠端的檔案來看
到這一步算是完成了本機開發遠端執行的目的
後續要接著執行 unit test 並在 PyCharm 的介面上看到各項測試綠燈也是可以的
遠端執行修改後的結果 |
沒有留言:
張貼留言