暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

pyinstaller 的使用

生有可恋 2023-01-06
857

pyinstaller 是最简单的 python 打包工具,一行命令即可将 python 程序转换成 exe 格式的可执行文件。

    d:\autox> pyinstaller autoshutdown.py

    生成的可执行文件在当前目录的 dist 目录,整个过程有种执行代码编译的感觉。

      $ go-tree -l 2
      .\
      ├── autoshutdown.py
      ├── autoshutdown.spec
      ├── build\
      │ └── autoshutdown\
      └── dist\
      └── autoshutdown\

      pyinstaller 的安装会引入许多依赖,通过 pip 进行安装:

        C:\Users\hyang0> pip install pyinstaller
        Collecting pyinstaller
        Downloading pyinstaller-5.7.0-py3-none-win_amd64.whl (1.3 MB)
        ---------------------------------------- 1.3/1.3 MB 1.8 MB/s eta 0:00:00
        Requirement already satisfied: setuptools>=42.0.0 in c:\python\python311\lib\site-packages (from pyinstaller) (65.5.0)
        Collecting altgraph
        Downloading altgraph-0.17.3-py2.py3-none-any.whl (21 kB)
        Collecting pyinstaller-hooks-contrib>=2021.4
        Downloading pyinstaller_hooks_contrib-2022.14-py2.py3-none-any.whl (252 kB)
        ---------------------------------------- 252.6/252.6 kB 1.3 MB/s eta 0:00:00
        Collecting pefile>=2022.5.30
        Downloading pefile-2022.5.30.tar.gz (72 kB)
        ---------------------------------------- 72.9/72.9 kB 1.3 MB/s eta 0:00:00
        Preparing metadata (setup.py) ... done
        Collecting pywin32-ctypes>=0.2.0
        Downloading pywin32_ctypes-0.2.0-py2.py3-none-any.whl (28 kB)
        Collecting future
        Downloading future-0.18.2.tar.gz (829 kB)
        ---------------------------------------- 829.2/829.2 kB 2.6 MB/s eta 0:00:00
        Successfully installed altgraph-0.17.3 future-0.18.2 pefile-2022.5.30 pyinstaller-5.7.0 pyinstaller-hooks-contrib-2022.14 pywin32-ctypes-0.2.0

        通过 pyinstaller 对 python 代码打包可以免除在目标电脑安装 python 环境和各种依赖。最终 python 代码会被编译成一个独立可执行文件,方便分发执行。

        当需求重复编译时,一般当源代码发生变化时需要这么做,可以先清除编译目录再执行编译,此时的命令为:

          pyinstaller --clean -y autoshutdown.py

          默认编译的 exe 可执行文件,在双击运行时会有一个黑乎乎的命令行窗口弹出,此时程序是在前台执行的:

          如果我们的程序并没有使用标准输出来输出日志,而是通过读写文件写日志的。此时可以将 python 代码编译成后台程序,运行时不会弹框,也不会被不小心关掉。程序只能在任务管理器中查看进程信息。此时的编译命令为:

            pyinstaller --clean -y -w autoshutdown.py

            通过加一个 -w 参数可以将可执行程序转换为后台进程,运行时不会弹出一个黑乎乎命令行窗口。

            默认编译的可执行文件是个 python 蟒蛇的图标,如果打算在编译时换个图标怎么做?可以把 ico 图标文件准备好,在编译时通过 --icon 指定图标文件就可以给可执行文件换图标了。

              pyinstaller --clean -y -w --icon demo.ico autoshutdown.py

              比如提供如下图标:

              编译完成后的可执行文件如下图所示:

              全文完。

              如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。

              文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论