You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从运行中的Python Shell恢复误删的solve.py模块源码或PYC文件?

从运行中的Python Shell恢复丢失的solve.py源码

哇,这情况真的太闹心了——GitHub Desktop的Bug搞丢仓库,还碰上个PyCharm本地历史用不了的窘境,换谁都得慌。不过万幸的是,你导入的solve模块还在Python Shell里运行着,这可是咱们找回代码的关键机会!

核心方法:从内存中的模块对象提取源码

只要那个Python Shell进程还在运行(别按Ctrl+C,别让函数结束!),你完全可以直接从已加载的模块里导出源码:

  1. 在运行的Python Shell里执行以下命令:

    # 如果之前用from solve import *导入,模块对象已存在;若提示找不到,先执行import solve
    import inspect
    import solve
    
    # 获取模块的完整源码
    source_code = inspect.getsource(solve)
    # 直接将源码写入新文件保存
    with open("recovered_solve.py", "w") as f:
        f.write(source_code)
    

    执行完你就能在当前目录得到一个recovered_solve.py文件,里面就是你丢失的代码。这个方法依赖Python对已加载模块的内存存储,只要进程没终止就100%管用。

  2. 备选:查找残留的PYC文件
    你可以先看看模块加载时的原始路径,说不定对应的PYC文件还在某个角落:

    print(solve.__file__)
    

    这个命令会输出模块被导入时的文件路径(比如/path/to/your/solve.py),你可以把后缀改成.pyc,或者去对应的__pycache__目录找找(比如/path/to/your/__pycache__/solve.cpython-3x.pyc)。如果找到PYC文件,用反编译工具还原:

    # 先安装反编译工具
    pip install uncompyle6
    # 将PYC文件转成可读源码
    uncompyle6 /path/to/your/solve.pyc > solve.py
    

重要提醒:别先终止进程!

一旦你按下Ctrl+C终止函数,或者函数自行结束导致Python Shell进程退出,内存里的模块对象就会被销毁,上面的方法就失效了。一定要先把源码提取出来,再处理进程的问题。

适合的交流平台推荐

  • Stack Overflow:本身就是你现在提问的平台,针对这类具体的技术故障,贴清场景细节(比如Python版本、GitHub Desktop版本),很快能得到精准解答。
  • Reddit的r/python或r/git板块:社区氛围活跃,很多开发者愿意帮忙排查这类突发的文件丢失问题。
  • Python官方Discord服务器:实时交流的好去处,能快速得到即时的建议和排查思路。

内容的提问来源于stack exchange,提问作者Conor James Thomas Warford Hen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:27:29