【发布时间】:2020-12-17 04:43:58
【问题描述】:
我有 Pyinstaller build 和 pycache 文件夹。我也有我的 exe(作为 onedir,而不是 onefile)和 Pyinstaller .spec 文件。 我怎样才能从他们那里得到我的代码?我不小心把它删了。请帮忙
【问题讨论】:
标签: python-3.x pyinstaller python-3.8
我有 Pyinstaller build 和 pycache 文件夹。我也有我的 exe(作为 onedir,而不是 onefile)和 Pyinstaller .spec 文件。 我怎样才能从他们那里得到我的代码?我不小心把它删了。请帮忙
【问题讨论】:
标签: python-3.x pyinstaller python-3.8
这应该不是什么大问题,因为有一些库可以帮助做到这一点。
首先从here 下载pyinstxtractor.py,然后运行pip install uncompyle6。
现在打开您的目录并在此位置打开 CLI,然后将 pyinstxtractor.py 复制到该目录并运行命令:
python pyinstxtractor.py executable.exe
现在,将在目录中创建一个文件夹executable.exe_extracted,现在进入该文件夹并在这个新位置打开 CLI,然后运行命令:
uncompyle6 executable.pyc
现在您的代码将在 CLI 上“反编译”,只需将其复制并粘贴到新的 py 文件中即可。
注意:
另外请记住,最好使用与您创建项目时使用的 Python 版本相同的 Python 版本,以获得更好的性能。
uncompyle6 的另一种替代方法是decompyle3,它更适用于在 python 3.7+ 上编写的代码
更新:
如果您在使用decompyle3 或uncompyle6 时遇到问题,请使用PyC decompiler-love data tool 或Decompiler 等在线pyc 反编译器
另请注意:可以看出反编译有时不起作用,因为某些 pyc 文件错过了必须将魔术头(手动或使用代码)插入到 pyc 文件中。 p>
【讨论】: