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基础语法(Python基础知识点)
Feb 28 Python
Python对多属性的重复数据去重实例
Apr 18 Python
实践Vim配置python开发环境
Jul 02 Python
win10系统下Anaconda3安装配置方法图文教程
Sep 19 Python
python实现弹窗祝福效果
Apr 07 Python
python matplotlib库绘制散点图例题解析
Aug 10 Python
python Web flask 视图内容和模板实现代码
Aug 23 Python
python已协程方式处理任务实现过程
Dec 27 Python
详解python环境安装selenium和手动下载安装selenium的方法
Mar 17 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
Apr 21 Python
Python 如何查找特定类型文件
Aug 17 Python
python用Tkinter做自己的中文代码编辑器
Sep 07 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/11/28 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
Laravel源码解析之路由的使用和示例详解
2018/09/27 PHP
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
js判断背景图片是否加载成功使用img的width实现
2013/05/29 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
jQuery实现鼠标点击弹出渐变层的方法
2015/07/09 Javascript
Javascript中神奇的this
2016/01/20 Javascript
JavaScript数组方法总结分析
2016/05/06 Javascript
Bootstrap开发实战之第一次接触Bootstrap
2016/06/02 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
[04:02]2014DOTA2国际邀请赛 BBC每日综述中国战队将再度登顶
2014/07/21 DOTA
Python中文编码那些事
2014/06/25 Python
详解Django框架中的视图级缓存
2015/07/23 Python
基于pandas将类别属性转化为数值属性的方法
2018/07/25 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
2019/02/16 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
在C语言中"指针和数组等价"到底是什么意思?
2014/03/24 面试题
五一服装活动方案
2014/01/11 职场文书
七年级地理教学反思
2014/01/26 职场文书
文科生自我鉴定
2014/02/15 职场文书
担保书范本
2015/01/20 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
监护人证明
2015/06/19 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
村官2015年度工作总结
2015/10/14 职场文书
信息技术国培研修日志
2015/11/13 职场文书
详解Django的MVT设计模式
2021/04/29 Python