vscode 远程调试python的方法


Posted in Python onDecember 01, 2017

本文介绍了vscode 远程调试python的方法,分享给大家,具有如下:

实验环境

远程服务器:京东云,1核2G,centos7.3 64bit

本地环境配置

  1. 安装vscode,实验用的版本是1.10.2
  2. vscode配置python插件,实验用的python插件版本是0.7.0
  3. 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)

开始调试

  1. 在服务器启动工程
  2. 在vscode里面打好断点
  3. 在vscode运行调试即可

vscode 远程调试python的方法

解决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))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用语句导入模块或包的机制研究
Mar 30 Python
python中子类调用父类函数的方法示例
Aug 18 Python
Pandas读取并修改excel的示例代码
Feb 17 Python
使用selenium和pyquery爬取京东商品列表过程解析
Aug 15 Python
解决Django layui {{}}冲突的问题
Aug 29 Python
python3 字符串知识点学习笔记
Feb 08 Python
Python 面向对象部分知识点小结
Mar 09 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
Jun 24 Python
Python使用socket模块实现简单tcp通信
Aug 18 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
Nov 10 Python
Python修改DBF文件指定列
Dec 19 Python
解决Pyinstaller打包软件失败的一个坑
Mar 04 Python
Python中单、双下划线的区别总结
Dec 01 #Python
从CentOS安装完成到生成词云python的实例
Dec 01 #Python
Django的分页器实例(paginator)
Dec 01 #Python
浅谈python装饰器探究与参数的领取
Dec 01 #Python
Python简单读取json文件功能示例
Nov 30 #Python
Python实现嵌套列表及字典并按某一元素去重复功能示例
Nov 30 #Python
Python实现的多线程同步与互斥锁功能示例
Nov 30 #Python
You might like
十天学会php之第三天
2006/10/09 PHP
php笔记之:php数组相关函数的使用
2013/04/26 PHP
php连接与操作PostgreSQL数据库的方法
2014/12/25 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
2015/12/24 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
实例讲解PHP验证邮箱是否合格
2019/01/28 PHP
基于jQuery的自动完成插件
2011/02/03 Javascript
JQuery操作元素的css样式
2015/03/09 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
JavaScript原生对象常用方法总结(推荐)
2016/05/13 Javascript
js 连续赋值的简单实现
2016/06/13 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
使用html+js+css 实现页面轮播图效果(实例讲解)
2017/09/21 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
2017/11/27 Javascript
JS 实现分页打印功能
2018/05/16 Javascript
nodejs中实现用户注册路由功能
2019/05/20 NodeJs
layui 点击重置按钮, select 并没有被重置的解决方法
2019/09/03 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
Python之pymysql的使用小结
2019/07/01 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
keras load model时出现Missing Layer错误的解决方式
2020/06/11 Python
Yankee Candle官网:美国最畅销蜡烛品牌之一
2020/01/05 全球购物
财务部岗位职责
2013/11/19 职场文书
高中运动会广播稿
2014/09/16 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
群众路线个人对照检查材料
2014/09/23 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
搞笑的爱情检讨书
2014/10/01 职场文书
机关班子查摆问题及整改措施
2014/10/28 职场文书
2016年父亲节寄语
2015/12/04 职场文书
小学思想品德教学反思
2016/02/24 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
MySQL 全文检索的使用示例
2021/06/07 MySQL