首页
留言
动态
归档
推荐
音乐
工具
Search
1
Emby公益服-上万部电影电视剧免费看
60,853 阅读
2
openwrt-docker部署lxk0301京东自动签到脚本
12,439 阅读
3
QuantumultX-京东签到撸京东豆
10,759 阅读
4
LXK0301京东签到脚本-自动提交互助码
9,235 阅读
5
微信-域名被封监测以及自动更换被封域名
8,927 阅读
随便写写
科学上网
Web开发
瞎折腾
登录
Search
标签搜索
quantumultx
laravel
openwrt
laravel nova
laradock
telegram
薅羊毛
google adsense
jd_scripts
京东签到
ubuntu
oh-my-zsh
web开发环境
nginx
工具
shadowsocks shadowsocksR
RBAC
权限管理
内网穿透
Python
orzlee
累计撰写
44
篇文章
累计收到
595
条评论
首页
栏目
随便写写
科学上网
Web开发
瞎折腾
页面
留言
动态
归档
推荐
音乐
工具
搜索到
1
篇与
Python
的结果
2018-12-03
Python打包exe和解包
前言 之前自己接触过Python一段时间,不过那只是自己无聊瞎折腾。Python使用空格缩进划分代码块,强制规范了代码得可读性。最近公司有个项目,由Python打包的windows可执行程序,项目已经有了,只不过由于没有更新导致无法使用,需要解包调整代码后再打包。程序不是orzlee写的,也没有多少Python经验,不过会一种编程语言,其他的语言也就是语法差异了。 解包 Python解包使用pyinstxtractor.py,将pyinstxtractor.py和将要解包的.exe放到同一文件夹后执行: python pyinstxtractor.py example.exe 解包后会在当前目录生成example.exe_extracted文件夹。 如果Python打包的可执行程序是Python 2.7版本,那么example.exe_extracted文件夹中应该直接解包出了pyc文件,其他版本还需要一步。 在example.exe_extracted文件夹中找到没有后缀的文件(在文件夹一级目录,不用找其他目录),一般就是主要的pyc文件了(orzlee这个解包后就是main)。 由于其他版本的Python解包后缺少文件头,所以需要加上: 需要十六进制编辑器(orzlee随便在网上找了一个Hxd)。 先将main文件复制一份,重命名为main.pyc 先打开文件夹中其他pyc后缀的文件,复制文件头。 打开main.pyc将文件头粘贴后保存。 安装uncompyle6: pip install uncompyle6 转换pyc文件: uncompyle6 main.pyc > main.py 至此已经解包成功。 打包 修改完代码后再打包回exe可执行文件,需要pyinstaller。 安装pyinstaller: pip install pyinstaller 还有其他方法pyinstaller Downloads。 打包: pyinstaller -F main.py 一定要加上-F参数,不然不会打包成一个文件。 部分参数说明: -F 生成单个可执行文件; -D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)。 -w 表示去掉控制台窗口,这在GUI界面时非常有用。命令行程序请无视!; -c –console, –nowindowed 使用控制台,无界面(默认); -p 自定义需要加载的类路径,一般用不到; -i 表示可执行文件的图标。 结语 python打包成exe可执行文件还是第一次见,打包、解包又长见识了。还好这个python程序非常简单,不然难度真的很大。总之经验是累积起来的,只要有Google在,这点困难还是能应付的。
2018年12月03日
5,257 阅读
0 评论
3 点赞