详解如何将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 序列化 pickle/cPickle模块使用介绍
Nov 30 Python
Python基础语言学习笔记总结(精华)
Nov 14 Python
浅谈Django REST Framework限速
Dec 12 Python
APIStar:一个专为Python3设计的API框架
Sep 26 Python
pycharm中使用anaconda部署python环境的方法步骤
Dec 19 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
Apr 03 Python
详解Python 切片语法
Jun 10 Python
pytorch 自定义数据集加载方法
Aug 18 Python
如何使用pycharm连接Databricks的步骤详解
Sep 23 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
Oct 29 Python
搭建pypi私有仓库实现过程详解
Nov 25 Python
python集合的新增元素方法整理
Dec 07 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 xml常用函数的集合(比较详细)
2013/06/06 PHP
php出现内存位置访问无效错误问题解决方法
2014/08/16 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
Symfony查询方法实例小结
2017/06/28 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
2017/08/17 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
避免回车键导致的页面无意义刷新的解决方法
2011/04/12 Javascript
基于jquery实现后台左侧菜单点击上下滑动显示
2013/04/11 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
2015/05/08 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
2017/03/30 Javascript
基于node.js之调试器详解
2017/08/22 Javascript
Node层模拟实现multipart表单的文件上传示例
2018/01/02 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
原生JS使用Canvas实现拖拽式绘图功能
2019/06/05 Javascript
layui使用label标签的方法
2019/09/14 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
小程序自定义模板实现吸顶功能
2020/01/08 Javascript
jQuery带控制按钮轮播图插件
2020/07/31 jQuery
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
初学python数组的处理代码
2011/01/04 Python
Python中变量交换的例子
2014/08/25 Python
flask中主动抛出异常及统一异常处理代码示例
2018/01/18 Python
python机器学习之贝叶斯分类
2018/03/26 Python
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
测绘工程本科生求职信
2013/10/10 职场文书
小学生新年寄语
2014/04/03 职场文书
后勤工作个人总结
2015/02/28 职场文书
慈善募捐倡议书
2015/04/27 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
PHP中->和=>的意思
2021/03/31 PHP