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实现类似ftp传输文件的网络程序示例
Apr 08 Python
Python实现数据库编程方法详解
Jun 09 Python
Python使用os模块和fileinput模块来操作文件目录
Jan 19 Python
BP神经网络原理及Python实现代码
Dec 18 Python
Pytorch中膨胀卷积的用法详解
Jan 07 Python
Python 必须了解的5种高级特征
Sep 10 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
Sep 30 Python
Python安装第三方库攻略(pip和Anaconda)
Oct 15 Python
python Autopep8实现按PEP8风格自动排版Python代码
Mar 02 Python
浅谈Python数学建模之固定费用问题
Jun 23 Python
Python 处理表格进行成绩排序的操作代码
Jul 26 Python
Python机器学习应用之工业蒸汽数据分析篇详解
Jan 18 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更快的提供文件下载的代码
2012/06/13 PHP
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
Yii视图CGridView实现操作按钮定义地址示例
2016/07/14 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
限制文本字节数js代码
2007/03/06 Javascript
半角全角相互转换的js函数
2009/10/16 Javascript
Jquery判断IE6等浏览器的代码
2011/04/05 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
JavaScript的面向对象编程基础
2015/08/13 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
浅谈bootstrap源码分析之tab(选项卡)
2016/06/06 Javascript
js实现数组去重方法及效率?Ρ? target=
2017/02/14 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
2018/08/21 jQuery
微信小程序scroll-view横向滑动嵌套for循环的示例代码
2018/09/20 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
微信小程序云函数添加数据到数据库的方法
2020/03/04 Javascript
win7安装python生成随机数代码分享
2013/12/27 Python
浅述python2与python3的简单区别
2018/09/19 Python
python 移动图片到另外一个文件夹的实例
2019/01/10 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
python ssh 执行shell命令的示例
2020/09/29 Python
python 使用OpenCV进行简单的人像分割与合成
2021/02/02 Python
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
家居饰品店创业计划书
2014/01/31 职场文书
计算机系本科生求职信
2014/05/31 职场文书
村道德模范事迹材料
2014/08/28 职场文书
派出所副所长四风问题个人整改措施思想汇报
2014/10/13 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL