使用Python将py文件打包成可执行exe应用程序

写好了python程序,想将它像一个app一样双击就可以运行,或者想发给一个没有python编辑器的朋友,该如何操作?

python开发人员就考虑了这种情况,提供了一系列的库以供使用者解决这些问题。

这里介绍两种情况的打包:

  • 单个py文件打包成EXE应用程序
  • 包含多个文件的python程序打包成EXE应用程序
  • 使用软件:pycharm

    目录

    单个py文件打包成EXE应用程序

    1、下载工具包

    2、 运行打包工具

    3、大功告成

    包含多个文件的python程序打包成EXE应用程序

    1、整理文件

    2、下载工具包

    3、生成.spec文件:

    4、修改.spec文件

    5、生成EXE可执行文件

    双击运行后可能会出现的错误 

    单个py文件打包成EXE应用程序

    1、下载工具包

    个人习惯在pycharm的终端里安装库,在cmd里面也是可以的。如果太慢的话,可以换源

    pip install pysimplegui-exemaker -i https://pypi.tuna.tsinghua.edu.cn/simple

    很顺利的出现了successfully的字样。

    2、 运行打包工具

    也是在终端,输入python -m pysimplegui-exemaker.pysimplegui-exemaker

    python -m pysimplegui-exemaker.pysimplegui-exemaker

    出现这个窗口:

     

    点击“Browse”,选中需要打包的py文件。在"Source Python File"内就会出现路径

    下面那个"Icon File"就是最终exe文件的图标,就像qq的图标是那只企鹅的意思。图片后缀名需要是.ico格式的。如果没有,不追求美观的话,也可以不用输入。

    3、大功告成

    点击左下角的"Make EXE",等待几秒即可。

     界面没有一堆的warn和error,最后一行有“DONE”,就成功了。

    生成的exe文件位置是和它的py文件所在目录是一致的。

    双击就可以使用。完全可以直接发送给朋友,朋友也不需要再去下载相关的软件和库之类麻烦操作。

    包含多个文件的python程序打包成EXE应用程序

    遇到复杂的代码就是第二种情况了,操作也不是很繁琐。

    1、整理文件

    非py文件的全部都放进和py文件并列的文件夹里,且确保整理完之后可以正常运行(警告最好也不要出现)

    2、下载工具包

    终端里安装pyinstaller

    pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple

    在终端进入需要打包文件的所在路径 通过cd命令进去

    3、生成.spec文件:

    使用下面的命令生成.spec文件。

    pyi-makespec -w xxx.py  

    这里的xxx代表主函数。

    在我这里的主函数是reco.py。

    4、修改.spec文件

    用记事本打开刚生成的xxx.spec文件,将所有的py文件手动输入到‘Analysis’、所有的非py文件放入’binaries’,将包含py文件、非py文件、xxx.spec文件的路径输入到‘pathes’

    这里需要注意一下 :

    如果最后运行的时候需要出现控制台,那么还要在.spec文件里修改图片里的这行。

    5、生成EXE可执行文件

     输入命令:

    pyinstaller -D reco.spec

     开始打包。出现successful就是打包成功。

     

    最后生成的EXE文件会出现在dist文件夹里,双击运行。

    双击运行后可能会出现的错误 

    双击运行后也可能出现令人发指的红色叉叉 。

    那就仔细看看弹出的窗口里的英文是什么,再对症下药。

    我遇到过以下几种情况:

     1、

    这个根据路径把相关的插件删掉就行。

    我这里就把_gru_ops.dll删掉了。因为弹窗最后出现了这个.dll未找到。它的位置一般是在dist里面找。 

     2、

    这是程序内有input类的交互语句,窗口没打开。根据第四步里的注意事项修改spec就行。然后再执行一遍第五步的语句。

    3、

    出现no model of什么什么的错误,要么就是你打包的程序里面需要这个库,你没有在终端下载(在终端输入pip install 需要的库,再从头开始进行打包一次)。或者在spec里面的hiddenimports里输入需要的库再重复一遍第五步的语句就行。例如hiddenimports=[‘numpy’]。

         提醒:   尽量减少打包的py文件

    物联沃分享整理
    物联沃-IOTWORD物联网 » 使用Python将py文件打包成可执行exe应用程序

    发表评论