python怎么将删的代码恢复_找回丢失的Python代码--如果代码还驻留在内存中

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

在使用git的过程中我方了(对错误的文件使用git checkout --),我一不小心删除了自己刚写的代码...不过这个代码还作为一个进程在一个docker容器中运行着。接下来我要讲讲我是如何找回代码的:我使用了https://pypi.python.org/pypi/pyrasite/和https://pypi.python.org/pypi/uncompyle6。

将一个Shell附着到Docker容器上

安装GDB(pyrasite需要)apt-get update && apt-get install gdb

安装pyrasite,它让你能够跟正在运行的进程通信pip install pyrasite

安装uncomplyle6,它能让你获取内存中存在的对象的源代码pip install uncompyle6

找到正在运行的进程的PIDps aux | grep python

使用pyrasite附着一个交互提示符pyrasite-shell 

现在你在交互终端中了,导入你要恢复的代码>>> from my_package import my_module

找出你需要恢复的函数和类>>> dir(my_module)

['MyClass', 'my_function']

把函数源代码提取出来>>> import uncompyle6

>>> import sys

>>> uncompyle6.main.uncompyle(

2.7, my_module.my_function.func_code, sys.stdou

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值