WingIDE 7.2.0 遠程調試

大型程序常常會運行在性能強勁的服務器上,但是此時程序的調試又成了難辦的事情,於是產生了遠程調試的需求,本文介紹WingIDE遠程調試配置方法。

環境描述

  • WingIDE 版本需求 6.++/ 7.++ ,我的是 7.2.0

  • 本地操作系統 Win10

  • 遠程服務器操作系統 Ubuntu 16.04

  • 安裝 putty

  • 解決方案:使用ssh協議通信,實現遠程調試

環境配置

安裝SSH服務

查看服務是否安裝:

sudo ps -e |grep ssh

返回帶有 sshd 的條目即爲已經安裝

$ ps -e |grep ssh
   37 ?        00:00:00 sshd
16013 ?        00:00:00 sshd
16588 ?        00:00:00 sshd

否則安裝SSH服務

sudo apt-get install openssh-server

生成SSH密鑰對

在本地Win10(運行wingIDE的環境)使用ssh-keygen生成SSH密鑰

$ ssh-keygen -t rsa

此時在 C -> Users -> Admin(用戶名) -> .ssh 文件夾下會生成 id_rsaid_rsa.pub兩個密鑰文件,其中 id_rsa爲私鑰,無論如何不能交給別人。

遠程主機配置SSH密鑰

將剛剛生成的公鑰文件id_rsa.pub複製到遠程主機 ~/.ssh文件夾中,並添加到~/.ssh/authorized_keys裏。

假設你的id_rsa.pub文件在.ssh文件夾中而且名稱爲rsa_temp.pub

cat ~/.ssh/rsa_temp.pub >> ~/.ssh/authorized_keys
rm  ~/.ssh/rsa_temp.pub

此時你的本機Win10系統ssh連接遠程主機已經不再需要輸入密碼進行身份驗證。

可以使用ssh命令測試是否配置成功,過程中詢問是否繼續連接,輸入 yes即可:

ssh -p 3722 [email protected] #-p爲端口 一般來說ssh常用端口默認是22

----->
The authenticity of host '[192.168.10.80]:3722 ([192.168.10.80]:3722)' can't be established.
ECDSA key fingerprint is SHA256:qCIsaqEa6wNy0daSgBxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[192.168.10.80]:3722' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-142-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
Last login: Thu May 14 08:20:47 2020 from 192.168.10.213
 * Starting OpenBSD Secure Shell server sshd                             [ OK ]
root@fc6fa7bb6824:~#

此時我們已經可以用SSH連接兩個操作系統,即已經完成了理論層面的配置,接下來進入具體操作階段。

遠程調試配置

此處解釋一下,WingIDE在連接遠程服務器時需要配置連接信息,而這個信息可以在putty中保存,也就是說,只要putty中保存的參數可以連接成功,那麼這套配置就可以用於wingIDE的遠程調試。

私鑰文件id_rsa轉換成putty的ppk格式

putty需要ppk格式的私鑰文件,生成方法如下:

  • 運行puttygen (在putty同位置文件夾內)

  • 選擇Conversions菜單項中的Import key選項:

  • 選擇生成的id_rsa文件
  • 在puttygen的界面上點擊Save private key按鈕就可以把私鑰轉換爲ppk的格式了(不要點Generate

在putty配置遠程連接信息

打開putty

  • 配置 Session :

主要配置IP和端口號,在Saved Sessions裏配置可以區分的名字,之後供WingIDE調用

  • 配置 Connection-Data選項卡,在自動登錄用戶名處填入需要自動登錄的用戶名(我的是root)

  • 配置 Connection-SSH-Auth選項卡,瀏覽選擇剛剛生成的私鑰ppk文件:

  • 回到Session,點擊Save保存當前配置到test_3722中:

  • 此後每次打開putty雙擊我們的test_3722即可連接到遠程服務器:

配置WingIDE

距離成功僅一步之遙。

打開WingIDE, Project -> New Project

其中 Identifier 爲該工程的名稱, Host Name爲我們剛剛保存的Putty名稱,點擊OK

  • 此時可以選擇保存工程,也可以一會再說

  • 在遠程的默認python路徑往往不是我們需要的,我的常用python在conda的一個自建的環境中,可以指定其爲wingIDE的默認遠程python環境:

  • 隨後一路OK,出現此對話框說明配置成功:

  • 重啓python shell 可以在本地看到遠程的python shell:

  • 可以簡單通過操作系統驗證是否配置成遠程python

  • 在project中可以加入遠程的工程

可以本地修改遠程代碼,並運行調試:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章