详解如何将python3.6软件的py文件打包成exe程序


Posted in Python onOctober 09, 2018

在我们完成一个Python项目或一个程序时,希望将Python的py文件打包成在Windows系统下直接可以运行的exe程序。在浏览网上的资料来看,有利用pyinstaller和cx_Freeze进行打包的方法。关于cx_Freeze打包的方法,可以参考windows下cx_Freeze生成Python可执行程序中的方法。由于方法主要是可以用于Python3.3版本的,高于该版本的Python无法使用。在我尝试的过程中,碰到的一个问题是:

安装cx_Freeze-4.3.3,找不到cxFreeze.bat

解决的方法是,在cmd命令行操作下,切换至放置cx_Freeze-4.3.3文件的Python安装目录下scripts目录下,使用以下代码自动生成:

python cxfreeze-postinstall

由于我安装的Python版本是3.6.2版本的,版本相对较新,cx_Freeze还没有更新版本至3.6版本。在我尝试很多次数失败后,决定采用pyinstaller来进行文件打包的方法。

下载pyinstaller

采用命令行操作的办法

在cmd命令行中,输入代码:

pip install pyinstaller

或者采用更新、升级的方法:

pip install --upgrade pyinstaller

采用下载文件+cmd操作的办法

首先,前往PyInstaller网站下载:http://www.pyinstaller.org/downloads.html

详解如何将python3.6软件的py文件打包成exe程序
     

下载时,要注意你安装的Python是多少版本的,有稳定版和不稳定版的,Python3.6只有不稳定版本的。其中绿色方框的是适用于linux操作系统下的,红色方框是适用于Windows系统下的。

进行解压缩、放置和安装

下载后,将压缩文件解压缩在Python安装目录下,进入该文件:

详解如何将python3.6软件的py文件打包成exe程序

该目录中含有setup.py,同时在cmd中进入该目录:

详解如何将python3.6软件的py文件打包成exe程序

输入命令:

python setup.py install

并按下回车键,会看到代码迅速执行,会进行安装pyinstaller,显示如下状态,看到“Finished processing dependencies for PyInstaller==3.3.dev0+41c426f6d”,即安装成功:

详解如何将python3.6软件的py文件打包成exe程序

使用pyinstaller打包py文件成exe程序

打包文件成exe程序

将cmd的目录切换至(命令:cd 文件路径(注意空格))需要打包的py文件目录下:

详解如何将python3.6软件的py文件打包成exe程序

并输入代码,格式为使用命令:pyinstaller -F 文件名(带后缀py):

pyinstaller -F test.py

常用参数说明:

?icon=图标路径
-F 打包成一个exe文件
-w 使用窗口,无控制台
-c 使用控制台,无窗口
-D 创建一个目录,里面包含exe以及其他一些依赖性文件

pyinstaller -h 来查看参数

回车后,代码迅速操作,直到操作结束。

详解如何将python3.6软件的py文件打包成exe程序

返回目标文件目录,发现该目录下生成了.spec文件test.spec:

详解如何将python3.6软件的py文件打包成exe程序
打包好的exe文件,在同目录的dist文件中:

详解如何将python3.6软件的py文件打包成exe程序

由此,py文件打包好为exe文件。pyinstaller 改变生成exe程序的图标

pyinstaller -F --icon=my.ico test.py

my.ico 是一个图标名,和当前的test.py文件在同一个目录下

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

Python 相关文章推荐
python 不关闭控制台的实现方法
Oct 23 Python
python选择排序算法的实现代码
Nov 21 Python
python实现下载文件的三种方法
Feb 09 Python
Python基于time模块求程序运行时间的方法
Sep 18 Python
vscode 远程调试python的方法
Dec 01 Python
Python设计模式之观察者模式原理与用法详解
Jan 16 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
Jul 17 Python
Python Numpy数组扩展repeat和tile使用实例解析
Dec 09 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
Feb 28 Python
解决redis与Python交互取出来的是bytes类型的问题
Jul 16 Python
属性与 @property 方法让你的python更高效
Sep 21 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
Nov 29 Python
让代码变得更易维护的7个Python库
Oct 09 #Python
windows下cx_Freeze生成Python可执行程序的详细步骤
Oct 09 #Python
Python打包方法Pyinstaller的使用
Oct 09 #Python
Python如何发布程序的详细教程
Oct 09 #Python
python如何发布自已pip项目的方法步骤
Oct 09 #Python
Django csrf 验证问题的实现
Oct 09 #Python
Python正则表达式指南 推荐
Oct 09 #Python
You might like
php面向对象的方法重载两种版本比较
2008/09/08 PHP
用php的ob_start来生成静态页面的方法分析
2011/03/09 PHP
Yii分页用法实例详解
2014/12/04 PHP
深入理解PHP原理之执行周期分析
2016/06/01 PHP
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
JQuery 学习技巧总结
2010/05/21 Javascript
js动画效果制件让图片组成动画代码分享
2014/01/14 Javascript
JavaScript中Function函数与Object对象的关系
2015/12/17 Javascript
Bootstrap 网站实例之单页营销网站
2016/10/20 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
2017/02/10 Javascript
整理关于Bootstrap导航的慕课笔记
2017/03/29 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
JavaScript实现的数字与字符串转换功能示例
2017/08/23 Javascript
vue cli 3.0 使用全过程解析
2018/06/14 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
JavaScript 禁止用户保存图片的实现代码
2020/04/28 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
[28:42]Ti4正赛VG vs NEWBEE1
2014/07/19 DOTA
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
python3实现名片管理系统
2020/11/29 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
django 自定义filter 判断if var in list的例子
2019/08/20 Python
django自带serializers序列化返回指定字段的方法
2019/08/21 Python
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
卫校毕业生自我鉴定
2013/10/31 职场文书
建筑施工员岗位职责
2013/11/26 职场文书
打造完美自荐信
2014/01/24 职场文书
面试后的英文感谢信
2014/02/01 职场文书
2015年党员干部承诺书
2015/01/21 职场文书
英语通知范文
2015/04/22 职场文书
2019年度开业庆典祝福语大全!
2019/07/05 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android