乐之之

知而行乐,乐而行之,天道酬勤,学无止境。
如何将模块打包发布?

  终于用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文件下即可。

posted on 2022-12-21 17:45  乐之之  阅读(142)  评论(0编辑  收藏  举报