终于用pyqt5制作出来的图书管理系统完成了,那么在打包模块时该怎么做呢?下面我主要以图书管理系统的模块为案例简述两种打包方式。
一、第一种方式
- 在打包前需要用到一个模块pyinstaller,pip install pyinstaller即可。
- 在整理好自己的模块时,将所有模块统一放在一个文件夹内,如我这里的Library_management_system文件夹。
- 之后我们找到相对应的目录路径输入cmd,打开cmd窗口。
- 打开之后输入指令:pyinstaller -F -w main.py
- 这里的-w就是取消自带的dos窗口,不然在主窗口运行的同时还会有一个dos窗口运行,看着怪怪的。
- main.py是需要打包的主模块包,根据具体情况修改即可。
- 显示successfully即打包成功。
- 打包成功之后出现两个新的文件builed和dist,我们点击dist文件夹找到主模块包(程序文件)打开即可。
那么在打包过程中可能会出现几个问题,如下:
1、此应用程序未能启动,因为无法初始化Qt平台插件。重新安装应用程序可能会解决此问题。
原因及解决方案:
(1)文件名或者环境路径中存在中文或者是空格,将中文改为英文、空格改为下划线等符号。
(2)丢失环境变量。
- 这时就需要在编辑用户变量中添加变量QT_QPA_PLATFORM_PLUGIN_PATH,对应的自己的python路径下E:\python\Lib\site-packages\PyQt5\Qt5\plugins\platforms,就可以了,如下图。
2、输入库无法打开,或无法连接数据库。
原因及解决方案:
- 这是环境变量配置中的位置没有找到sqldrivers文件夹中的sqlite.dll,将sqldrivers文件夹复制在对应变量配置的文件夹内即可。
3、登录账户,始终显示该账号不存在。
原因:
- 可能是同一路径下数据库文件未找到的原因。
解决方案:
- 将db(数据库)文件放在main文件夹内就可以了。
4、如何去除程序运行后的DOS框?
- 输入完整打包指令:pyinstaller -F -w main.py (-w就是取消窗口)
5、如何更改程序图标
- 将图标放入目录下,输入以下命令pyinstaller -F -i iron-man.png main.py即可。
二、第二种方式
- 此方法主要用于模块较多的一种打包方式。
- 指令一:pyi-makespec main.py
- 指令二:pyinstaller main.spec
- 如图:
- 同上找到文件路径输入cmd,打开cmd窗口。
1、生成main.spec。
先输入pyi-makespec main.py,将打包的模块生成一个main.spec的文件,然后,在Pycharm中打开该文件进行修改。
2、修改
(1)通过os模块,列出该目录下所有模块名。
(2)将模块名放入列表内。
- 将需要的模块放在该列表内,需要注意的是:main.py主要文件放在开头,列表内的db数据库文件名、图片文件名、生成的main.spec文件名删除掉。
- 复制该目录的绝对路径,放在pathex列表中,如下图步骤二所示。
(3)将exe中的console改为False,这样打包后的主程序运行时就不会出现DOS窗口了。
3、打包
- 输入pyinstaller main.spec,然后将db数据库和图标放入dist中的main文件下即可。