美文网首页
使用PyInstaller打包Python程序

使用PyInstaller打包Python程序

作者: 大器待成 | 来源:发表于2020-05-05 20:37 被阅读0次

    PyInstaller是一个用来将Python程序打包成独立可执行软件的工具,支持 Windows、Linux 和 Mac OS X。生成的可执行软件在没有Python的环境中可以直接运行,方便软件分发,进一步降低使用成本,提升使用效率。

    下面演示如何使用PyInstaller将程序打包成Windows下的exe软件。

    PyInstaller安装

    使用pip的方式进行安装,这样可以自动安装其他依赖库。

    pip install PyInstaller
    

    如果pip还未安装,请参考我的另一篇文章《 Python pip包管理工具

    PyInstaller常用参数

    • -F:打包成单个文件,生成结果是一个exe格式文件。
    • -D:打包成多个文件,生成结果是一个目录,包含依赖文件、资源、exe文件等,默认参数。
    • -c:使用Windows控制台,显示命令行窗口,默认参数。
    • -w:使用Windows窗口,显示图形界面窗口,编写GUI程序时使用此参数有用。
    • -p:指定其他import路径,类似于使用PYTHONPATH,多个目录可以用路径分割符(Windows使用分号,Linux使用冒号)。
    • –add-data:打包其他资源,多个资源可以使用路径分割符(Windows使用分号,Linux使用冒号)。
    • –add-binary:打包其他程序库,多个库可以使用路径分割符(Windows使用分号,Linux使用冒号)。
    • -i :指定生成应用的icon图标。
    • -n:指定生成应用的文件名。

    在cmd命令行控制台或者VS Code内置的终端输入命令行生成应用,首先将当前路径切换到Python程序所在的路径(如下示例的SubOcr.py文件在python文件夹下的SubOcr文件夹内),然后输入生成应用的命令。

    pyinstaller01.png

    命令执行成功后在 I:\work\python\SubOcr\dist 文件夹下生成了SubOcr文件夹,里面包含了SubOcr.exe文件。整个SubOcr文件夹就是一个绿色软件,随便移动到任何位置都可运行。

    pyinstaller02.png

    使用spec文件生成应用

    实际上在用pyinstaller命令时会在Python程序的所在路径生成一个后缀为spec的同名文件,然后根据此文件的配置生成应用,这就是PyInstaller的原理。这样做的好处是spec保存了生成应用的配置,每次重新生成应用时可以省略指定参数,尤其是指定了其他的资源、程序库时。我们可以通过以下命令先生成spec文件。

    pyi-makespec -w -i icon.ico SubOcr.py
    

    pyi-makespec的命令参数跟pyinstaller的相同,在生成spec文件后可以对其部分选项进行编辑(可以用VS Code或自带的记事本编辑),添加更多参数,然后再用pyinstaller命令生成应用。

    pyinstaller SubOcr.spec
    

    spec文件的主要选项:

    • scripts: 源文件名
    • pure: 源文件依赖的纯Python模块
    • binaries: 源文件依赖的非Python模块,比如dll文件
    • datas: 应用依赖的数据文件或文件夹

    上面示例的SubOcr用到了opencc和opencv-python,其中opencc下的数据文件和opencv-python下的dll文件在生成应用时不会自动导入(缺少这些文件应用无法正常使用),因此需要在spec文件中指定路径。对spec文件的修改如下:

    pyinstaller03.png

    以上便是PyInstaller打包Python程序的全过程,如果在此过程中遇到问题,可以在评论区留言,定当知无不言,言无不尽。

    相关文章

      网友评论

          本文标题:使用PyInstaller打包Python程序

          本文链接:https://www.haomeiwen.com/subject/eguvghtx.html