记录使用Python第三方库pyinstaller将程序打包成exe的方法以及打包成功后闪退、缺少模块问题ModuleNotFoundError: No module named ‘xxx‘的解决方案

        今天下午博主在使用pyinstaller打包上篇文章《【人工智能】基于百度AI和Python编程的简单实现:通过QQ/Tim截图进行文本识别功能的分析实战详解——以获取百度文库付费内容为例》所编写的截图文本识别代码时遭遇了ModuleNotFoundError: No module named 'xxx’的问题,试了一圈解决方案,总算试出来了。遥记得几个月前在做一个小项目参加比赛时,也是同样的pyinstaller打包问题,同样的报错,整整捣鼓了两天才解决;还有一次未能解决的pyinstaller问题是因为不支持pyecharts库。因此,这次我准备记录下这个pyinstaller的打包问题,并且下次遭遇新问题时也会同时更新此文。

Pyinstaller库打包exe方法

pyinstaller库的安装

        首先,你得安装好pyinstaller这个库,直接pip即可。

pip install pyinstaller

pyinstaller库的打包方法

        一般pyinstaller打包有两种方式:有黑窗口和无黑窗口。如果是自己用python做了UI(如tkinter),那么就没必要再有黑窗口了;如果是打包之前输入和输出在控制台完成,那么黑窗口还是要保留的。
① 有黑窗口打包命令:

pyinstaller -F xxx.py

② 无黑窗口打包命令:

pyinstaller -F -w xxx.py

pyinstaller库的打包过程

        了解了基础的两种pyinstaller打包方法后,我们可以开始进行打包了。首先进入到自己所编写好的python程序所在路径,按住Shift,右键点击文件夹空白处,选择“在此处打开PowerShell窗口(S)”。打开后输入上述有黑窗口打包命令(pyinstaller -F TextRecognition.py)。注意:在输入python文件名称时,可输入t直接按下Tab键进行补全。
在这里插入图片描述

Pyinstaller库打包后遭遇的问题及解决方案

        注意:在说到pyinstaller打包遭遇的问题之前,先保证自己所要打包的python程序是确定可执行的,否则先改好程序再说!接下来我们要说的问题都是建立在python运行正常的基础之上。

1.exe程序打开后闪退:缺少模块问题ModuleNotFoundError: No module named ‘xxx’

        本次使用pyinstaller测试打包上回博客所编写的代码(pyinstaller -F TextRecognition.py)时,所遭遇的问题便是:ModuleNotFoundError: No module named ‘xxx’。表现出来的症状是打开打包好的exe程序后不断闪退。经过使用cmd命令提示行在exe程序所在文件夹中通过命令(./TextRecognition.exe)直接执行程序后,提示报出的错误是ModuleNotFoundError: No module named ‘keyboard’。

解决方案
        1.打开pycharm,在设置中找到打包成功后提示缺少的那个第三方库(如我的keyboard),鼠标悬浮在上面,观察到它的安装路径(如D:\Programminglearning\Pycharm\Python-WorkSpace\venv\Lib\site-packages)。
在这里插入图片描述
        2.对Python源程序文件.py重新打包,但不同的是加上参数-p和python包所在路径。

pyinstaller -F -p D:\Programminglearning\Pycharm\Python-WorkSpace\venv\Lib\site-packages TextRecognition.py

        如果包含多个目录,则可以用分号隔开:

pyinstaller -F -p D:\Programminglearning\Pycharm\Python-WorkSpace\venv\Lib\site-packages;D:\Programminglearning\Python\Test\venv\Lib\site-packages TextRecognition.py

        此时打包后,运行exe程序可正常执行,发给其他朋友也能正常使用。
在这里插入图片描述

其他问题待更新…

猜你喜欢

转载自blog.csdn.net/qq_42506411/article/details/107792479