vscode 远程调试python的方法
时间:2019-04-11
本文章向大家介绍vscode 远程调试python的方法,主要包括vscode 远程调试python的方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文介绍了vscode 远程调试python的方法,分享给大家,具有如下:
实验环境
远程服务器:京东云,1核2G,centos7.3 64bit
本地环境配置
- 安装vscode,实验用的版本是1.10.2
- vscode配置python插件,实验用的python插件版本是0.7.0
- vscode配置python远程调试环境
在.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换成要调试的远程项目路径,port是调试要打开的端口,host是远程服务器IP地址
服务器环境配置
首先要安装一个python库,叫做ptvsd,但是注意版本要用3.0.0,用了高一点版本就出问题。
然后在你的入口文件加上下面的代码(12345改成调试端口):
import ptvsd ptvsd.settrace(None, ('0.0.0.0', 12345))
完整python代码:
# coding:UTF-8 import ptvsd ptvsd.settrace(None, ('0.0.0.0', 12345)) from time import sleep from random import random for _ in xrange(0, 50): sleep(5) i = random() print(i)
开始调试
- 在服务器启动工程
- 在vscode里面打好断点
- 在vscode运行调试即可
解决flask debug远程调试无法捕捉数据问题
上代码:
# 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)
原理:因为flask在debug模式下,是fork一个子进程来处理http请求,所以应该在子进程调用ptvsd.settrace(None, ('0.0.0.0', 12345))
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- morestack与goroutine pool
- 关于python使用threadpool中的函数单个参数和多个参数用法举例
- python科学计算之numpy
- 关于python使用cv画矩形并填充颜色同时填充文字
- Go语言入门基础
- 【前端编程】加载第三方JS的各种姿势
- ubuntu16中遇到libgstreamer-0.10.so.0缺失解决方案
- 关于文件的压缩与解压
- Storm读取Kafka数据是如何实现的
- faster-rcnn在编译时遇到的一些问题
- 使用感知机训练加法模型
- 让你真正理解什么是SparkContext, SQLContext 和HiveContext
- 谈谈Go语言的反射三定律
- centos6.x升级protobuf操作流程.
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法