当我们完成一个Python项目或一个程序时,希望将Python的py文件打包成在Windows系统下直接可以运行的exe程序,那么pyInstaller就是一个很好的选择。pyInstaller可以将Python程序打包成Windows(当然也包括Linux, Mac OS X, Solaris and AIX)下可执行的EXE文件。

1. 安装pyinstaller

官网下载地址:http://www.pyinstaller.org/downloads.html

可以看到官网提供了两种安装的方式:1)通过pip直接安装;2)下载源码,在本地编译安装。

(1)通过pip安装

方式一:直接安装

pip install pyinstaller

方式二:通过升级的方式更新到较新的版本

pip install --upgrade pyinstaller

方式三:直接安装当前开发版本

pip install https://github.com/pyinstaller/pyinstaller/archive/develop.tar.gz

(2)下载源码,在本地编译安装

访问上述官网下载地址,下载源码安装包,然后解压安装包,打开cmd并进入安装包解压目录,可以看到该目录下有一个setup.py的文件

运行安装指令:

python setup.py install

当看到“Finished processing dependencies for PyInstaller==3.5.dev0+0d289e49b”字样,说明安装成功,也可以通过 pyinstaller -v 命令查看是否安装成功

2.pyinstaller依赖安装

使用pyinstaller需要安装windows拓展Pywin32

下载地址:https://sourceforge.net/projects/pywin32/files/pywin32/Build 221/

3. pyinstaller使用

先来看一下pyinstalller有哪些那些常用参数:

参数 含 义
-F, --onefile 打包一个单个文件,只生成一个exe文件。如果你的代码都写在一个.py文件的话,可以用这个,如果是多个.py文件就别用
-D, --onedir 打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码,代码易于维护,推荐使用
--distpath 指定生成的exe存放的目录(.\dist)
--workpath 指定编译中临时文件存放的目录(.\build)
-i, --icon 指定exe图标
-p, --paths 指定exe依赖的包、模块
-d, --debug 产生debug版本的可执行文件.编译为debug模式,获取运行中的日志信息
--clean 清理编译时临时文件
-c, --console, --nowindowed 使用控制台(默认方式)
-w,  --windowed, --noconsole 使用窗口
--version-file 添加exe版本信息
-v, --version 版本信息查看
-h, --help 查看帮助

示例:

(1)生成一个控制台程序

pyinstaller test.py

(2)只生成一个EXE文件

pyinstaller -F test.py

(3)只生成一个EXE文件的窗口程序

pyinstaller -F -w test.py

(4)生成一个图标为my.icon的程序

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

最新文章

  1. [No00005B] word快速插入当前时间&怎样一次性删除文档中的全部链接
  2. unity知识点思维导图
  3. centos分区
  4. jquery时间轴幻灯展示源代码
  5. 详细的JavaScript事件使用指南
  6. Unrecognized Windows Sockets error: 0: JVM_Bind 异常怎么办
  7. Cobar使用文档(可用作MySQL大型集群解决方案)
  8. [javascript|基本概念|Number]学习笔记
  9. C#中struct与class的区别详解
  10. PHP json_encode()函数使用
  11. codeforces 547B. Mike and Feet 单调栈
  12. Centos6.4下tar包安装最新版Mysql5.6
  13. 在线压缩JS的工具
  14. GetConsoleTitle 函数--获取控制台窗口标题
  15. C# Task用法
  16. Rancher
  17. Eclipse设置注释模板和工作空间背景色为豆沙绿
  18. 利用存储过程来重命名SQL Server数据库
  19. HDU 6156 数位dp
  20. html如何给图片加角标

热门文章

  1. 整个ssd的网络和multibox_loss_layer
  2. E: Unable to locate package
  3. Node.js 笔记02
  4. 到底什么时候需要使用 final
  5. java使用JSCH连接FTP(Linux服务器)上传文件到Linux服务器
  6. 『嗨威说』常见的C++函数模板整理(一)
  7. php如何将base64数据流文件转换为图片文件?
  8. MySQL单表数据查询(DQL)
  9. Yii2.0 游客访问限制(转)
  10. JQ 封装全选函数