详解将Python程序(.py)转换为Windows可执行文件(.exe)


Posted in Python onJuly 19, 2019

python开发者向普通windows用户分享程序,要给程序加图形化的界面(传送门:这可能是最好玩的python GUI入门实例! https://3water.com/article/165763.htm),并要将软件打包为可执行文件(.exe结尾),那如何将.py转为.exe ?

详解将Python程序(.py)转换为Windows可执行文件(.exe)

将.py转为.exe

第一步:安装pyinstaller(这里临时调用了国内豆瓣镜像源,这样下载比较快)

pip install pyinstaller -i https://pypi.douban.com/simple

第二步:更改编码方式(window用户专用)

由于windows默认编码是gbk,而我们的开发环境(unix环境)默认编码使用utf-8,为解决编码问题,我们需要对pyinstaller源码进行一些修改

详解将Python程序(.py)转换为Windows可执行文件(.exe)

修改读取方式为:utf-8

pyinstaller 中winmainifest.py中的第1075行,修改为 with open(filename,encoding="UTF-8") as f:

winmainifest.py 的位置: C:\Program Files (x86)\Python36-32\Lib\site-packages\PyInstaller\utils\win32\winmanifest.py ,如果找不到,可以先尝试第三步,如果转换过程报错,会打印出这个文件在本机的位置.

如果权限不够,无法保存修改,可以先将修改后的文件,保存到桌面(保持原来的文件名),用桌面的文件替换原目录中的文件即可!

第三步:将.py转换为.exe

>这里以`Python GUI入门实例`为例(Python GUI入门实例传送门: https://3water.com/article/165763.htm)

命令: pyinstaller --onefile 011根据ip查询地理位置.py

详解将Python程序(.py)转换为Windows可执行文件(.exe)

创建打包为.exe文件

第四步:运行测试

详解将Python程序(.py)转换为Windows可执行文件(.exe)

编译后的目录

生成的.exe文件在dist文件夹内

将数据库文件GeoLiteCity.dat拷贝到dist文件夹中 详解将Python程序(.py)转换为Windows可执行文件(.exe)

完整的程序

运行可执行文件(.exe)

详解将Python程序(.py)转换为Windows可执行文件(.exe)

以管理员身份运行

详解将Python程序(.py)转换为Windows可执行文件(.exe)

成功运行效果

教程涉及到的资源我都通过百度网盘分享给大家,为了便于大家的下载,资源整合到了一张独立的帖子里,链接如下:
http://www.jianshu.com/p/4f28e1ae08b1

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python提示No module named images的解决方法
Sep 29 Python
python使用fileinput模块实现逐行读取文件的方法
Apr 29 Python
python中执行shell的两种方法总结
Jan 10 Python
老生常谈python的私有公有属性(必看篇)
Jun 09 Python
Python中max函数用于二维列表的实例
Apr 03 Python
python 将数据保存为excel的xls格式(实例讲解)
May 03 Python
python绘制BA无标度网络示例代码
Nov 21 Python
python实现五子棋游戏(pygame版)
Jan 19 Python
Python函数默认参数常见问题及解决方案
Mar 26 Python
keras CNN卷积核可视化,热度图教程
Jun 22 Python
解决python 执行shell命令无法获取返回值的问题
Dec 05 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
Feb 27 Python
简单了解django缓存方式及配置
Jul 19 #Python
python实现最小二乘法线性拟合
Jul 19 #Python
这可能是最好玩的python GUI入门实例(推荐)
Jul 19 #Python
python如何实现数据的线性拟合
Jul 19 #Python
django获取from表单multiple-select的value和id的方法
Jul 19 #Python
django 信号调度机制详解
Jul 19 #Python
python傅里叶变换FFT绘制频谱图
Jul 19 #Python
You might like
PHP删除非空目录的函数代码小结
2013/02/28 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
2016/02/03 PHP
PHP实现导出带样式的Excel
2016/08/28 PHP
Laravel网站打开速度优化的方法汇总
2017/07/16 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
2020/04/26 PHP
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
jquery带动画效果幻灯片特效代码
2015/08/27 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
2015/10/29 Javascript
深入浅析JavaScript函数前面的加号和叹号
2016/07/09 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
webpack3+React 的配置全解
2017/08/21 Javascript
JS去掉字符串中所有的逗号
2017/10/18 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
手把手教你如何使用nodejs编写cli命令行
2018/11/05 NodeJs
在vue项目中优雅的使用SVG的方法实例详解
2018/12/03 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
[07:55]2014DOTA2 TI正赛第三日 VG上演推进荣耀DKEG告别
2014/07/21 DOTA
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
python opencv实现任意角度的透视变换实例代码
2018/01/12 Python
keras导入weights方式
2020/06/12 Python
HTML5的结构和语义(3):语义性的块级元素
2008/10/17 HTML / CSS
介绍一下游标
2012/01/10 面试题
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
毕业生自荐书
2014/02/02 职场文书
优秀乡村医生事迹材料
2014/05/28 职场文书
运动会加油口号
2014/06/07 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书