• python打包exe之pyinstaller用法


    pyinstaller可以将python写好的脚本打包成exe文件,方便windows用户在没有python环境下运行。这个程序完全跨平台,包括Windows、Linux、Mac OS X等多个操作系统下运行。因为我用的是win7,以下直接使用windows打包讲解,不同平台上使用 PyInstaller方法是一样的,它们支持的选项也是一样的。

    安装Pyinstaller

    Python默认不包含Pyinstaller模块,因此需要自行安装

    与安装其它Python模块一样,使用pip命令安装即可,一条搞定:

    pip install pyinstaller
    

    运行上面命令,可以看到如下输出结果,表示成功:

    > Successfully installed altgraph-0.17 pefile-2021.5.24 pyinstaller-4.5.1 pyinstaller....
    

    使用Pyinstaller

    Pyinstaller 工具使用的命令语法如下:

    > pyinstaller 选项 python源文件
    

    实际工作中常用的命令也就几条:

    ## -D(默认选项),生成build、dist目录,该选项生成一个目录(包含多个文件)来作为程序
    pyinstall -D app.py
    
    ## 使用-F选项,在dist目录下生成单独的EXE文件(在Mac生成的文件没有exe后缀)
    pyinstaller -F app.py
    
    ## -w不显示GUI窗口,-i指定图标
    pyinstaller -F -w -i app.ico app.py
    

    如果想给软件添加自己喜欢的图标,这里推荐以下方式

    https://www.iconfont.cn/     			####免费的在线icon图标网站
    http://www.favicon-icon-generator.com/  ###免费在线生成1
    http://www.ico51.cn/    				####免费在线生成2
    

    常用参数说明

    -h,--help 查看该模块的帮助信息
    -F,-onefile 产生单个的可执行文件
    -D,--onedir 产生一个目录(包含多个文件)作为可执行程序
    -a,--ascii 不包含 Unicode 字符集支持
    -d,--debug 产生 debug 版本的可执行文件
    -w,--windowed,--noconsolc 指定程序运行时不显示命令行窗口(仅对 Windows 有效)
    -c,--nowindowed,--console 指定使用命令行窗口运行程序(仅对 Windows 有效)
    -o DIR,--out=DIR 指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件
    -p DIR,--path=DIR 设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径
    -n NAME,--name=NAME 指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字
    > 以上只是Pyinstaller模块所支持的常用选项,如需了解更多可通过`pyinstaller -h`来查看。
    

    实践一下

    这里简单写一个demo,我们来进行打包测试

    为了不让界面执行完立即退出,使用input()让界面暂时停留

    print("钢铁侠的知识库")
    input()
    

    使用命令进行打包:

    > pyinstaller -F test.py
    

    打包成功后会在dist下找到test.exe文件,执行即可看到

    以上即表示打包成功。

    ---- 钢铁 648403020@qq.com 2021.08.07

    参考鸣谢

    http://c.biancheng.net/view/2690.html

    https://blog.csdn.net/xiaomu_347/article/details/108761161

    https://medium.com/pyladies-taiwan/python-將python打包成exe檔-32a4bacbe351

  • 相关阅读:
    AT24C0X I2C通信原理
    Windows文件夹、文件源代码对比工具--WinMerge
    SignalTap导致PCIe Read/Write卡死
    Windows CMD 支持ls命令
    何为内存模型(JMM)?
    何为内存重排序?
    何为安全发布,又何为安全初始化?
    Hibernate入门之many to many关系映射详解
    Hibernate入门之one to many关系映射详解
    Hibernate入门之one to one关系映射详解
  • 原文地址:https://www.cnblogs.com/jiba/p/15113068.html
Copyright © 2020-2023  润新知