python+conda Pyinstaller打包exe后无法运行,闪退,运行后没有错误消息?

具体问题如题,使用Pyinstaller对python项目打包后,不能运行,出现诸多问题,这里一一解决。

 

Pyinstaller如何打包的问题,可以参考以前的文章:

https://blog.csdn.net/he99774/article/details/78123755

 

下面是使用Pyinstaller在Conda的环境下打包exe后,无法运行时遇到的问题和解决方案:

 

(这里插一句,一般exe有错误,那么双击运行后就会闪一下就没了,对于这种看不到具体错误信息,有两种方法:

1、手速快的话,可以趁着闪的那一下直接截图,就能看到错误消息

2、打开对应位置的CMD,然后输入.\name.exe,输入你的对应的exe,有报错信息就会显示)

 

问题001:因为项目中使用了opencv,有下面导包的代码就会报错,

import cv2

报错如图:

 

解决001:

如图是opencv和numpy对应的问题,卸载numpy,安装conda-forge numpy

conda uninstall numpy
conda install -c conda-forge numpy

PS:用conda卸载numpy,会将很多相关的包,如我的Matplotlib和numba也会被卸载掉,后面再安装就好了。

 

问题002:运行后没有任何消息,如图所示。

 

问题现象:当我先激活conda环境,如:activate py36,激活后再去CMD就可以正常运行

解决002:这还是Conda环境的问题,有了conda

解决参考:https://www.pythonheidong.com/blog/article/442388/156edf32a73a276ab2d0/

 

找到conda下的libiomp5md.dll

 

并将其复制到打包(dist)的文件夹下(反正和exe同目录就行)就正常了。

 

问题003:运行后显示没有exiv包,如果你有同样没有包的问题,可以参考。

解决003:

将conda中的pyexiv2的整个文件夹复制到目录。如果是其他包,直接复制过来,简单暴力。


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