1. 為什么這樣做?
??之前使用ssh連接服務(wù)器,然后借助jupyter notebook修改服務(wù)器代碼,然后使用pdb和pdb.set_trace()在終端調(diào)試代碼。切換成vs code的原因如下:
- jupyter 中查看python方法時,各個類之間方法互相引用,跳轉(zhuǎn)不方便;
- 查看代碼的時候,遇見不了解的方法時,無法時時看到方法的解釋和參數(shù)說明;
- 調(diào)試代碼時,查看參數(shù)值時不是特別方便。
2. 設(shè)備及軟件描述:
- mac ,ubantu(16.04)
- visual studio code(1.29.1)
3.修改遠(yuǎn)程服務(wù)器代碼
??修改服務(wù)器代碼使用vscode的插件sftp,安裝完成后。配置過程如下:
sftp.json文件。使用快捷鍵(mac)shift+cmd+p,然后輸入SFTP:Config,打開sftp.json文件。當(dāng)然sftp.json中還可以配置屬性password,ignore.具體查看sftp的說明。

pic 1
2.同步本地代碼到本地。命令為:
SFTP:sync Remote -> Local

pic 2
- 修改代碼,保存后,同步到服務(wù)器。命令為:
SFTP:sync Local -> Remote

pic 3
4. 本地調(diào)試遠(yuǎn)程代碼(敲黑板,劃重點,不認(rèn)真看的考試不及格)
??這里必須得意下:我在引擎上搜索了很久,要么是pycharm的方法 要么是visual studio 版本不一樣,不能完全參考。(包括官網(wǎng))。當(dāng)然這里我還是主要參考官方文檔和resolver101757github的提問。,像他們的成果表示深深的感謝。
- 設(shè)置launch.json。

pic 4
- 選擇python :attach.

pic 5
- 設(shè)置attach(敲黑板)。由于vscode 默認(rèn)沒有生成如下代碼,會導(dǎo)致可以服務(wù)器監(jiān)聽到,但是無法做到本地調(diào)試,而且當(dāng)添加斷電時,總是提示
pydev debugger: warning: trying to add breakpoint to file that does not exist:。我就是在這里苦苦尋找了一天半才找到解決辦法。

pic 6
- 接下來已經(jīng)配置完成。需要做的就是講代碼從服務(wù)器同步到本地,在代碼開頭(import之前)添加如下代碼。然后在將代碼同步到服務(wù)器。
import ptvsd # 使用pip 就可以安裝,網(wǎng)上有人說需要版本小于4.1.3,親測4.2.0沒問題。
import time
ptvsd.enable_attach(address=("10.0.3.0",5678)) # 這里的端口號大一些,大于1024,否則也會報錯。
ptvsd.wait_for_attach()
time.sleep(1)
- 在vscode終端使用ssh 連接上服務(wù)器,然后運行代碼,在vscode 中點擊調(diào)試按鈕(殺蟲劑圖標(biāo)),選擇上面設(shè)置的python:attach,點擊運行按鈕。如下圖:

pic 7
- 正確就可以成功啟動本地調(diào)試。
5. 可能的報錯
python socket.error: [Errno 98] Address already in use [closed]
?? ptvsd.enable_attach(address=("10.0.3.0",5678)) ,端口號太小,之前我就取22,改成大一些就OK,5678是默認(rèn)的。pydev debugger: warning: trying to add breakpoint to file that does not exist
??返回去看專題4的問題3(設(shè)置attach(敲黑板))