pycharm + Anaconda +pyqt 程序打包 遇到的问题及解决方法

  • Post author:
  • Post category:其他




打包命令

打包需要用到Pyinstaller这个模块

1、 需要安装pyinstaller; 安装方法:使用 pip install pyinstaller

2、用Anaconda Prompt黑窗口 cd到待打包的文件目录

3、输入执行:pyinstaller -w -F xx\xx\

xxx.py

-w: 直接发布的exe应用带命令行调试窗口,在指令内加入-w命令可以屏蔽掉命令框(调试阶段可不加-w, 最终发布时加入-w参数)

-F: 这里是大写。使用-F指令可以把应用打包成一个独立的exe文件,否则是一个带各种dll和依赖文件的文件夹

-p :这个指令后面可以增加pyinstaller搜索模块的路径。因为应用打包涉及的模块很多。这里可以自己添加路径



遇到的问题及解决方法

1.MouduleNotFoundError:No module named **

打包完运行有可能会遇到未找到模块或库。



解决方法:找到相应模块包的位置,然后在pyinstaller -w -F xx\xx\

xxx.py

中再加 -p 路径

即pyinstaller -p 路径 -w -F xx\xx\

xxx.py

2.This application failed to start because it could not find or load the Qt platform plugin “windows” in “”.

如果用到了pyqt做界面,依赖库需要包含platforms里的qwindow.dll ,会出现找不到Qt platform plugin “windows”问题。

在这里插入图片描述

解决办法:拷贝pyqt的platforms文件夹到生成的可执行程序同级目录下,如我的是:C:\Anaconda\pkgs\qt-5.6.2-vc14h6f8c307_12\Library\plugins

3.FileNotFoundError 未找到文件
在这里插入图片描述

如果你在pycharm中用 右键make_directory as–>sources path将子文件夹加入source_path 在python能正常运行,但pyinstaller没有把这些文件夹里的py文件包括进去,所以会导致会出现未找到相关文件。

解决办法:把程序所用的所有文件放在同一目录下 或者用 -p 加路径

4.资源文件

有一些代码需要调用一些图片和资源文件的,这是不会自动导入的,需要你自己手动复制进去才行。不然exe文件运行时命令窗口会报错找不到这个文件。

若代码里有加载资源文件(图片、gif、图标、qss样式表等) ,如果用的是相对路径,则相对于生成的可执行程序目录需有此资源文件。比如 ”./resource/picture/1.png”,在 生成的可执行程序目录下 需有resource文件夹,resource里有picture文件夹,picture里有1.png图片。

5.打包的文件很大

解决方法:用什么函数导什么函数,不要import整个库,因为这样会把整个库打包进去,没用到的库函数会占用了很大的空间

6.gif显示问题

我是用了Qlabel+Qmovie来播放gif图的,在pycharm显示完全没问题,打包完之后就播放不了

看了网上的解决方法,把C:\Anaconda\pkgs\qt-5.6.2-vc14h6f8c307_12\Library\plugins\imageformats下的qgif.dll复制到目录里,png图片文件能显示,但是gif图还是播放不了,目前还没解决。

如果有人有解决方法,请告诉我。



版权声明:本文为weixin_42463794原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。