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 根据pid杀死相应进程的方法
Jan 16 Python
python的构建工具setup.py的方法使用示例
Oct 23 Python
用tensorflow实现弹性网络回归算法
Jan 09 Python
selenium + python 获取table数据的示例讲解
Oct 13 Python
基于python历史天气采集的分析
Feb 14 Python
利用Python查看微信共同好友功能的实现代码
Apr 24 Python
python多线程与多进程及其区别详解
Aug 08 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
Jan 08 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
Mar 05 Python
python安装cx_Oracle和wxPython的方法
Sep 14 Python
详解Python利用configparser对配置文件进行读写操作
Nov 03 Python
python 实现百度网盘非会员上传超过500个文件的方法
Jan 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/10/09 PHP
PHP+Mysql无刷新问答评论系统(源码)
2016/12/20 PHP
Laravel实现定时任务的示例代码
2017/08/10 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
2018/10/23 PHP
PHP进阶学习之依赖注入与Ioc容器详解
2019/06/19 PHP
深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)
2012/01/15 Javascript
Javascript Objects详解
2014/09/04 Javascript
JS 打印功能代码可实现打印预览、打印设置等
2014/10/31 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
基于jquery实现的仿优酷图片轮播特效代码
2016/01/13 Javascript
基于JavaScript实现本地图片预览
2017/02/08 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
简单谈谈关于Angular Cli打包的事
2017/09/05 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
2018/08/07 Javascript
React中使用UEditor百度富文本的方法
2018/08/22 Javascript
vue-router传递参数的几种方式实例详解
2018/11/13 Javascript
[44:15]国士无双DOTA2 6.82版本详解(上)
2014/09/28 DOTA
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python使用cookielib库示例分享
2014/03/03 Python
python自动翻译实现方法
2016/05/28 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
python对excel文档去重及求和的实例
2018/04/18 Python
python中yaml配置文件模块的使用详解
2018/04/27 Python
用python写一个定时提醒程序的实现代码
2019/07/22 Python
python基于socket进行端口转发实现后门隐藏的示例
2019/07/25 Python
Django分页功能的实现代码详解
2019/07/29 Python
python读取大文件越来越慢的原因与解决
2019/08/08 Python
基于python实现上传文件到OSS代码实例
2020/05/09 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
捷克时尚网上商店:OTTO
2018/03/15 全球购物
创联软件面试题笔试题
2012/10/07 面试题
小学爱国卫生月活动总结
2014/06/30 职场文书
pytorch实现ResNet结构的实例代码
2021/05/17 Python