安装  

安装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)文件了。

 

python打包工具 --- pyinstaller的更多相关文章

  1. $python打包工具pyinstaller的用法

    pyinstaller是一个很好用的python打包工具,在Windows环境下可以将python脚本打包成一个exe可执行文件,并且脚本中所依赖的各种第三方库在打包时候都会被统一处理到一起,这样打包 ...

  2. python打包工具pyinstaller的使用

    安装PyInstaller pip install pyinstaller 安装完后,检查安装成功与否: pyinstaller --version 安装成功后,就可以使用下面的命令了: pyinst ...

  3. Python程序打包工具PyInstaller

    Python程序执行 py文件:直接提供源码,需要使用者自行安装Python并且安装依赖的各种库 pyc文件:pyc文件是Python解释器可以识别的二进制码,是跨平台的,需要使用者安装相应版本的Py ...

  4. Python打包工具setuptools的使用

    将我们写的Python程序发布成包后,可以使其能够安装使用. 在项目上测试的时候,某些情况下,可以将Python打包,然后上传到测试服务器,安装测试. setuptools是常用的打包工具. 一个简单 ...

  5. 如何使用python程序打包工具pyinstaller

    **通过**```pythonpyinstaller -F demo.py```**即可把demo.py打包成可独立运行的demo.exe** **pyinstaller在cmd使用格式:***pyi ...

  6. python打包exe pyinstaller 简单使用

    源由 最近公司让做了一个小工具,使用python写的,写完之后要求能放在其它电脑上运行,于是就开始寻找方案; 按网上的说法 py2exe已经很久没更新了,资料也不多: 于是就采用pyinstaller ...

  7. Python打包工具

    打包Python应用,使用工具: 1.Linux和Windows下,使用pyinstaller pyinstaller -F -w XXX.py 在当前文件夹下生成两个文件夹:build .dist ...

  8. python打包工具distutils、setuptools分析

    在上一篇博文中总结了python中导入包,安装包一条完整的线路.其中有一个有意思的知识点,安装包的方式有很多种,模块和包管理中打包,发布,安装也是值得研究的内容. python中安装包的方式有很多种: ...

  9. Python打包方法——Pyinstaller (转)

      Python版本:Python3.5.2 一.安装Pyinstaller 1.安装pywin32 下载安装文件:查找到跟自己适用的python版本及window系统版本匹配的pywin32,下载后 ...

随机推荐

  1. 杂(三)-The type java.lang.Object cannot be resolved It is indirectly referenced ...

    The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files ...

  2. json字符串转为json对象-jQuery.parseJSON()

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. ios 抓包工具 ios青花瓷charles

    iOS_青花瓷Charles抓包,ios青花瓷charles 使用青花瓷Charles抓取手机端的网络请求: 第一步,下载安装并打开Charles 第二步,去掉菜单[Proxy]以下的[Mac OSX ...

  4. Spring Boot(六): Favicon配置

    1.默认的Favicon Spring Boot提供了一个默认的Favicon,每次访问应用的时候都能看到,如图所示. 2.关闭Favicon 我们可以在application.properties中 ...

  5. python socket编程(socket)

    代码如下: server端: import sockets=socket.socket(socket.AF_INET,socket.SOCK_STREAM)host=socket.gethostnam ...

  6. MySQL:习题(单表多条件查询二)

    Sutdent表的定义 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 学号 INT(10) 是 否 是 是 是 Name 姓名 VARCHAR(20) 否 否 是 否 否 Sex 性 ...

  7. IOS设置图片背景

    在UIViewController里面这样设置: self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageN ...

  8. erlang的非平衡的二叉树的操作

    -module(tree1). -export([test1/0]). lookup(Key,nil) -> not_found; lookup(Key,{Key,Value,_,_}) -&g ...

  9. android.util.AndroidRuntimeException Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? com.uethinking.microvideo.manag

    记录学习,网络摘抄 碰到这个异常其实这个上面说的很清楚,加个flag 从一个Activity中要通过intent调出另一个Activity的话,需要使用 FLAG_ACTIVITY_NEW_TASK ...

  10. JavaWeb学习总结第六篇--认识Session机制

    认识Session机制 前文也提到过,常用的会话跟踪有两种技术:Cookie和Session.今天就为大家讲解一下Session机制. 什么是Session? Session是另一种记录客户状态的机制 ...