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代码调试的几种方法总结
Apr 15 Python
python使用wxPython打开并播放wav文件的方法
Apr 24 Python
Python实现数据库并行读取和写入实例
Jun 09 Python
Python 处理数据的实例详解
Aug 10 Python
快速解决docker-py api版本不兼容的问题
Aug 30 Python
python读文件的步骤
Oct 08 Python
Python彻底删除文件夹及其子文件方式
Dec 23 Python
Python实现对adb命令封装
Mar 06 Python
解决jupyter notebook显示不全出现框框或者乱码问题
Apr 09 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
May 22 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
May 23 Python
Python pandas之求和运算和非空值个数统计
Aug 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 和 MYSQL
2006/10/09 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
2011/04/18 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
js保留两位小数使用toFixed实现
2013/07/29 Javascript
JavaScript中实现依赖注入的思路分享
2015/01/15 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
JavaScript运动框架 多值运动(四)
2017/05/18 Javascript
Vue computed计算属性的使用方法
2017/07/14 Javascript
Vue-cli创建项目从单页面到多页面的方法
2017/09/20 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
你不知道的SpringBoot与Vue部署解决方案
2020/11/09 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
python实现的希尔排序算法实例
2015/07/01 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
2018/01/04 Python
详解Python之unittest单元测试代码
2018/01/24 Python
DataFrame中去除指定列为空的行方法
2018/04/08 Python
对pandas中Series的map函数详解
2018/07/25 Python
Python实现处理逆波兰表达式示例
2018/07/30 Python
python list多级排序知识点总结
2019/10/23 Python
解决python 上传图片限制格式问题
2019/10/30 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
学校介绍信范文
2014/01/14 职场文书
给校长的建议书600字
2014/05/15 职场文书
群教班子对照检查材料
2014/08/26 职场文书
校长师德师风自我剖析材料
2014/09/29 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
2016年村干部公开承诺书(公开承诺事项)
2016/03/25 职场文书
frg-100简单操作(设置)说明
2022/04/05 无线电