PyCharm Debugger实现热更新

问题描述

热更新,在不重启进程或不退出Python解释器的情况下,使修改后的Python源码能直接生效。

平常开发中,热更新能极大提高程序开发和调试的效率,在修复线上bug中更是扮演重要的角色。但是实现一个理想可靠的热更模块又非常的困难。

解决方案

方法二更实用

tool.py

def show():
    print(1)

test.py

import tool

if __name__ == '__main__':
    tool.show()
    tool.show()




方法一:Evaluate Expression

利用PyCharm Debugger的Evaluate Expression功能替换函数

  1. 在第二个tool.show()上打断点
    在这里插入图片描述
  2. 以Debug模式运行:点击Run→Debug ‘test’ 或 快捷键Alt+Shift+F9
  3. 执行表达式:点击Evaluate Expression 或 快捷键Alt+F8
    在这里插入图片描述
  4. 展开表达式
    在这里插入图片描述
  5. 执行代码
    在这里插入图片描述
def show():
    print('new')
tool.show = show
  1. Debug继续执行可看到热更新成功,输出new
1
new




方法二:

利用PyCharm Debugger的Show Python Prompt功能

  1. 在第二个tool.show()上打断点
    在这里插入图片描述
  2. 以Debug模式运行:点击Run→Debug ‘test’ 或 快捷键Alt+Shift+F9
  3. 直接修改源文件tool.py:print('new')
  4. 打开Prompt:点击Show Python Prompt
    在这里插入图片描述
  5. 执行代码:from importlib import reloadreload(tool)
  6. Debug继续执行可看到热更新成功,输出new







参考文献

  1. C老头和Java小子的硬盘夜话
  2. Evaluating Expressions - Help | PyCharm
  3. python基于函数替换的热更新原理介绍
  4. Pycharm Debug调试(纯干货)
发布了223 篇原创文章 · 获赞 63 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/lly1122334/article/details/103957530
今日推荐