安装  

安装python并添加到环境变量之后,在终端执行如下命令即可:

pip install pyinstaller

截图如下:

若安装失败,可到:

https://www.lfd.uci.edu/~gohlke/pythonlibs/

下载编译好的whl文件:

  执行  

然后在终端执行:

pip install xxx.whl

注:请自行将xxx修改为你下载的whl文件名,别傻乎乎的就用xxxT_T。

测试是否安装成功:

  普通打包  

若需将xxx.py文件打包,只需在终端执行:

pyinstaller xxx.py

注:终端需切换至xxx.py文件所在目录下。路径中不要有中文!!!!!!!!!!

  这个就是生成打包文件的位置,在打包过程中可以看到

在打包过程中,会生成一些文件,打包文件就在  dist  里面

常用可选项及说明:

-F:打包后只生成单个exe格式文件;

-D:默认选项,创建一个目录,包含exe文件以及大量依赖文件;

-c:默认选项,使用控制台(就是类似cmd的黑框);

-w:不使用控制台;

-p:添加搜索路径,让其找到对应的库;

-i:改变生成程序的icon图标。

完整可选项及说明:

  特殊打包  

我们可以通过编辑spec文件来满足一些特殊的打包要求。

注:什么是spec文件?

简单来说其作用就是用来告诉Pyinstaller如何打包你的py文件。当你在终端使用命令自动打包py文件时,pyinstaller会首先自动创建一个spec文件。一般情况下,我们不需要自己编辑spec文件,除非:

① 需要打包资源文件;

② 为可执行文件添加run-time选项,或需要包含一些Pyinstaller不知道的run-time库。

若要为xxx.py生成spec文件,只需在终端执行如下命令即可:

pyi-makespec xxx.py

命令可选项同pyinstaller。

一个简单的spec文件实例:

Analysis:

用于定义python源文件,包括搜索路径和源文件名等。

① scripts:在Analysis中定义的源文件;

② pure:python模块;

③ binaries:动态库;

④ datas:数据文件,包括图片字体等;

⑤ zipfiles:zip格式的依赖文件,一般是egg格式的库文件。

PYZ:

将python文件压缩打包,包含程序运行需要的所有依赖,输入一般是Analysis.pure。

EXE:

打包生成exe文件,根据上面两项生成。EXE子任务包括Analysis的所有5个输出项以及程序运行所需的一些配置文件和动态库。

配置文件和动态库通过TOC格式来配置,格式为(name, path, typecode),例如:

 

typecode包括:

① EXTENSION:python扩展库;

② PYSOURCE:python脚本;

③ PYMODULE;

④ PYZ;

⑤ PKG;

⑥ BINARY:动态库;

⑥ DATA:数据文件;

⑦ OPTION。

COLLECT:

用来构建最终的生成目录,可以复制其他子任务生成的结果,并拷贝到指定目录,形成最终的打包结果,COLLECT也可以没有。

编辑完xxx.spec文件后,在终端执行:

pyinstaller xxx.spec

命令可选项包括:

–upx-dir,

–distpath,

–noconfirm,

–ascii。

即可生成所需的app(.exe)文件了。

 

最新文章

  1. 如何阅读Java源码 阅读java的真实体会
  2. Codevs 2370 小机房的树 LCA 树上倍增
  3. Java条件语句练习
  4. APNS推送通知消息负载内容和本地格式字符串
  5. Winform开发框架之客户关系管理系统(CRM)的开发总结系列1-界面功能展示
  6. Java设计模式-迭代子模式(Iterator)
  7. C#中的一些复习。
  8. java ajax初始化
  9. UVa-Where's Waldorf?
  10. hdu_2296_Ring(AC自动机+DP)
  11. H5调用本地摄像头
  12. CSS动画 animation与transition
  13. Django学习之四:Django Model模块
  14. java.lang.ClassNotFoundException的解决方法
  15. <table>标签的结构和合并单元格的方法
  16. blob转base64位 base64位转blob
  17. python之函数用法get()
  18. 20分钟打造你的Bootstrap站点
  19. 过了所有技术面,却倒在 HR 一个问题上
  20. ab命令做压测测试

热门文章

  1. requestAnimationFrame 使用
  2. Jeewx 捷微管家操作配置文档(开源版本号)
  3. 工作总结 用, 隔开数据 后台不可以用 List<string> 接收 get请求直接通过浏览器发请求传数组或者list到后台
  4. 浅析Apache中RewriteCond规则参数的详细介绍
  5. ubuntu 16.04中卸载软件。
  6. Ajax主要用来完成哪些工作?
  7. Ubuntu下VirtualBox虚拟机与主机机互相ping通的简单配置心得
  8. BlockingQueue的使用 http://www.cnblogs.com/liuling/p/2013-8-20-01.html
  9. Obj-C数组以及字符串拼接与分割
  10. sql server 2008 去除html标签