介绍
工作中有一个颇具规模的 Python 工程,发布时会用 PyInstaller 打包成exe。其中有个很小的 Python 文件会经常修改,但每次打包时间非常长。于是就想:能否用已经编译好的 pyc 文件直接替换掉 exe 中对应的内容。经过对 PyInstaller 打包的 exe 文件格式的研究,实现了这个功能。
项目地址:
https://gitee.com/bruce_code/pyisrepack.git
https://github.com/bruce-yan/pyisrepack.git
Usage
Usage: python pyisrepack.py -ori <exe file> -p <pyc file> -o <output file>
How To Do
这是Demo代码, 使用 PyInstaller 将其打包为 main.exe
import sys
from PySide6.QtCore import Qt
from PySide6.QtWidget

文章介绍了一个方法,通过pyisrepack工具,可以实现不重新打包整个Python工程,仅替换已编译的pyc文件来更新exe程序。该过程涉及使用pyinstxtractor拆包exe,uncompyle6进行pyc到py的反编译,修改代码后重新编译回pyc,最后用pyisrepack将新的pyc文件压入exe。此方法适用于经常修改的小型Python文件,要求Python版本一致且exe中条目类型为s的情况。
最低0.47元/天 解锁文章
1253

被折叠的 条评论
为什么被折叠?



