首页
留言
动态
归档
推荐
音乐
工具
Search
1
Emby公益服-上万部电影电视剧免费看
68,113 阅读
2
openwrt-docker部署lxk0301京东自动签到脚本
13,008 阅读
3
QuantumultX-京东签到撸京东豆
11,249 阅读
4
LXK0301京东签到脚本-自动提交互助码
9,699 阅读
5
微信-域名被封监测以及自动更换被封域名
9,215 阅读
随便写写
科学上网
Web开发
瞎折腾
Search
标签搜索
quantumultx
laravel
openwrt
laravel nova
laradock
telegram
DDC/CL
薅羊毛
google adsense
jd_scripts
京东签到
ubuntu
oh-my-zsh
web开发环境
nginx
工具
shadowsocks shadowsocksR
RBAC
权限管理
内网穿透
orzlee
累计撰写
46
篇文章
累计收到
596
条评论
首页
栏目
随便写写
科学上网
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,463 阅读
0 评论
3 点赞