微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用Python的pyinstaller打包一朵花过程中遇到的天坑

Python用pyinstaller打包第三方库

前言

1.环境:python3.6;
2.程序所涉及第三方库matplotlib等;

一、pyinstaller介绍

1)作用

1)pyinstaller能将python程序转换成单个可执行文件(.exe);
2)操作系统支持Windows, Linux, Mac OS X,Solaris和AIX。并且很多包都支持开箱即用,不依赖环境;

2)安装方法

在cmd里pip install pyinstaller

3)pyinstaller参数介绍

  1. -F:打包生成单个文件;
  2. -w:让exe运行过程中不显示控制台;
  3. -i:为exe程序添加图标;
  4. -D:打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码;
    其余参数自行网上了解

4)使用方法

1.标准:
注意是在cmd中使用

pyinstaller -F -w -i C:\Users\lenovo\Desktop\flower\flower.ico C:\Users\lenovo\Desktop\flower\flower.py

2.说明:
[1]这里使用了绝对路径打包flower.ico和flower.py两个文件。其中flower.ico是配合-i参数的,是用于生成exe的图标。而flower.py是需要打包的python程序;嫌麻烦不想添加图标去掉-i参数和第一个路径亦可正常打包。
[2]当cmd的路径是与.ico和.py文件处于一个文件夹中时,可以不需要使用绝对路径,直接用相对路径即可;

pyinstaller -F -w -i flower.ico flower.py

[3]注意,打包后生成的几个文件夹会生成在cmd当前路径下。

5)泣血,使用中遇到的天坑

  1. 问题一:打开cmd后使用认路径直接打包,会报错。原因不清楚,但有解决办法;

    在这里插入图片描述

    使用认路径会报错
    解决办法:创建一个文件夹,放入待打包.ico和.py文件,cmd中路径切换到该文件夹下再打包;

    )

    2.问题二:打包成功后exe文件运行失败。原因是程序中使用了其它第三方库,没有打包其运行需要的相应module。
    解决办法:再pyinstaller打包过程中,仔细阅读info、error、warning等信息,缺少哪个module就去pip安装哪个;
    eg:这朵花是使用matplotlib花的,打包后提示缺少相关的PyQt4和PySide等等module;
    我就使用pip指令安装这些modlue。但是pip安装失败了
    原因是Python中最头疼的包版本和python版本的不匹配问题。
    PyQt4和PySide与我的python3.6不匹配,于是通过安装PyQt5pyside2替代解决了,也没有
    报错;
    3.问题三:由于exe可能会运行失败,建议调试时不要使用-w参数隐藏控制台,这样会导致看不见报错信息。但是报错信息可能会一闪而过
    解决办法:在cmd中打开此exe程序,报错信息就不会一闪而过。
  2. 问题四:-w参数使用失败,去掉-w参数却能打包成功。俺嫌麻烦,没试。不带-w参数解决了问题。。。。。。。
    解决办法:链接

二、代码

知乎上看见的,觉得有意思自己实践了一下。
源码链接

三、运行结果

在这里插入图片描述

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐