本文介紹了vscode 遠(yuǎn)程調(diào)試python的方法,分享給大家,具有如下:
實(shí)驗(yàn)環(huán)境
遠(yuǎn)程服務(wù)器:京東云,1核2G,centos7.3 64bit
本地環(huán)境配置
安裝vscode,實(shí)驗(yàn)用的版本是1.10.2 vscode配置python插件,實(shí)驗(yàn)用的python插件版本是0.7.0 vscode配置python遠(yuǎn)程調(diào)試環(huán)境在.vscode文件夾新建一個launch.json文件,然后填寫下面的代碼
{ "version": "0.2.0", "configurations": [ { "name": "Attach (Remote Debug)", "type": "python", "request": "attach", "localRoot": "${workspaceRoot}", "remoteRoot": "/tmp/demo", "port": 12345, "secret": "my_secret", "host": "10.12.34.23" } ]}
注意:/var/web換成要調(diào)試的遠(yuǎn)程項(xiàng)目路徑,port是調(diào)試要打開的端口,host是遠(yuǎn)程服務(wù)器IP地址
服務(wù)器環(huán)境配置
首先要安裝一個python庫,叫做ptvsd,但是注意版本要用3.0.0,用了高一點(diǎn)版本就出問題。
然后在你的入口文件加上下面的代碼(12345改成調(diào)試端口):
import ptvsdptvsd.settrace(None, ('0.0.0.0', 12345))
完整python代碼:
# coding:UTF-8import ptvsdptvsd.settrace(None, ('0.0.0.0', 12345))from time import sleepfrom random import randomfor _ in xrange(0, 50): sleep(5) i = random() print(i)
開始調(diào)試
在服務(wù)器啟動工程 在vscode里面打好斷點(diǎn) 在vscode運(yùn)行調(diào)試即可解決flask debug遠(yuǎn)程調(diào)試無法捕捉數(shù)據(jù)問題
上代碼:
# coding:UTF-8 from flask import Flask import ptvsd import socket try: address = ('127.0.0.1', 11111) s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.bind(address) except socket.error: ptvsd.settrace(None, ('0.0.0.0', 12345)) app = Flask(__name__) @app.route('/') def index(): a = 5 + 6 return "ok" if __name__ == '__main__': app.run(host='0.0.0.0', port=3000, debug=True)
原理:因?yàn)閒lask在debug模式下,是fork一個子進(jìn)程來處理http請求,所以應(yīng)該在子進(jìn)程調(diào)用ptvsd.settrace(None, ('0.0.0.0', 12345))
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持IIS7站長之家。
|
新聞熱點(diǎn)
疑難解答