问题描述
使用pyinstaller打包时,提示“no module named ***”,缺少相应的依赖库,导致无法正常打包或及时打包OK,但是运行时也会出现问题。
问题原因
1、原因1
我们安装的python环境上的确缺少这个依赖的第三方库,此时要解决这个问题就必须从python官网上下载对应的库,然后再使用pyinstaller进行打包。
2、原因2
我们使用的python环境本身已经安装了所依赖的第三方库,此时打包时还提示有问题,主要是因为pyinstaller工具,本身对于依赖库的自动检测做的不是特别智能,此时就需要我们通过参数制定所依赖库的具体路径,然后再次打包即可。
常用命令
pyinstaller -F -p C:\Python27\Lib\site-packages;C:\Python27\Lib\site-packages\matplotlib;C:\Python27\Lib\site-packages\matplotlib\backends --hidden-import matplotlib.backends.backend_tkagg
(1)其中 -F参数:生成单一的exe文件,使用这个参数,打包成功后只会生成一个单一的exe文件,中间的一些依赖的dll或其他都不会呈现出来,便于管理和使用。
(2)-p参数:就是提供给pyinstaller包的位置(dir1,dir2),以英文的分号(;)隔开
(3)-i 参数:制定exe的图标。
(4)–hidden-import:使用此命令可以解决本文中描述的问题,如:
pyinstaller -F --hidden-import matplotlib.backends.backend_tkagg --hidden-import numpy