zoukankan      html  css  js  c++  java
  • python打包工具 --- pyinstaller

      安装  

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

     

  • 相关阅读:
    NetCore+Dapper WebApi架构搭建(三):添加实体和仓储
    NetCore+Dapper WebApi架构搭建(二):底层封装
    NetCore+Dapper WebApi架构搭建(一):基本框架
    net core WebApi——缓存神器Redis
    net core Webapi基础工程搭建(六)——数据库操作_Part 2
    net core Webapi基础工程搭建(七)——小试AOP及常规测试_Part 2
    springBoot+mybatisPlus小demo
    JAVA并发(一)
    tomcat解析
    JAVA并发-线程状态
  • 原文地址:https://www.cnblogs.com/zmc940317/p/11016857.html
Copyright © 2011-2022 走看看