从 Pyinstaller 构建和 .spec 文件中恢复代码

Recover code from Pyinstaller build and .spec file

我有 Pyinstaller 构建和 pycache 文件夹。我也有我的 exe(作为 onedir,而不是 onefile)和 Pyinstaller .spec 文件。 我怎样才能从他们那里得到我的代码?我不小心删除了它。请帮助

这应该不是什么大问题,因为有一些库可以帮助做到这一点。

  1. 首先从 here 下载 pyinstxtractor.py 然后 运行 pip install uncompyle6.

  2. 现在打开您的目录并在此位置打开 CLI,然后将 pyinstxtractor.py 复制到该目录并 运行 命令:

    python pyinstxtractor.py executable.exe
    
  3. 现在,将在目录中创建一个文件夹 executable.exe_extracted,现在进入该文件夹并在这个新位置打开 CLI,现在 运行 命令:

    uncompyle6 executable.pyc
    
  4. 现在您的代码将在 CLI 上“反编译”,只需将其复制并粘贴到新的 py 文件中即可。

注意:

  • 另外请记住,最好使用与您创建项目时使用的版本相同的 python 版本以获得更好的性能。

  • uncompyle6 is decompyle3 的另一种替代方法,它更适合 python 3.7+

    上编写的代码

更新:

如果您在使用 decompyle3uncompyle6 时遇到问题,请使用 PyC decompiler-love data tool or Decompiler

等在线 pyc 反编译器

另请注意: 可以看出反编译有时不起作用,因为某些 pyc 文件缺少必须插入的魔术头(手动或使用代码) pyc 文件。