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

使用PyDecipher反编译PyInstaller打包的Python exe缺失文件问题

解决PyInstaller打包exe反编译缺失依赖文件的问题

1. 查看exe内部归档结构

用PyInstaller自带的工具检查exe包含的所有内容,运行:

pyi-archive_viewer your_app.exe

重点关注类似PYZ-00.pyz的文件——PyInstaller通常会把所有依赖模块打包到这个zip格式的归档中。

2. 提取PYZ归档文件

在pyi-archive_viewer的交互界面里,输入x PYZ-00.pyz(替换为实际的PYZ文件名),将该归档提取到当前目录。

3. 解压PYZ归档

PYZ本质是标准zip文件,用Python自带模块解压:

python -m zipfile -e PYZ-00.pyz extracted_pyz

进入extracted_pyz目录后,你会找到所有依赖模块的.pyc文件,包括config.pyc、libraries.pyc,以及includes目录下的database.pyc、convertor.pyc等。

4. 反编译单个pyc文件

使用decompyle3或uncompyle6工具将pyc文件还原为Python源码:

  • 先还原原项目的目录结构:
mkdir includes records
  • 反编译核心模块:
decompyle3 extracted_pyz/config.pyc > config.py
decompyle3 extracted_pyz/libraries.pyc > libraries.py
  • 反编译includes目录下的文件:
decompyle3 extracted_pyz/includes/database.pyc > includes/database.py
decompyle3 extracted_pyz/includes/convertor.pyc > includes/convertor.py

5. 提取资源文件(如names.csv)

回到pyi-archive_viewer界面,搜索names.csv或直接查找records/names.csv,找到后用x命令提取,放到新建的records目录下。

注意事项

  • 确保反编译工具版本与原项目的Python版本匹配,比如原项目用Python 3.9,就安装对应版本的decompyle3。
  • 如果打包时使用了--key加密,能反编译app.py说明密钥已被PyDecipher处理,其他模块可按相同流程反编译。
  • 反编译后的代码可能存在少量语法糖丢失或变量名简化,需要手动验证调整。

内容的提问来源于stack exchange,提问作者Amin Matola

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:05:13