1.问题
使用 pyinstaller 打包python项目时,有时会在命令行出现" WARNING: lib not found: …" 错误,意思就是无法找到指定的dll库,有些系统库缺失不会对生成的exe程序造成影响(如果运行exe程序的系统中包含这些库,那么即使在打包时缺失这些库,运行程序时软件也会在运行程序的体统中找到这些库并使用),有些python包对应的库缺失则会在执行程序时出现" Failed to execute script XXX " 错误。
2. 原因
上文说到,出现这些错误的原因就是无法找到指定的dll库,而出现这些问题的根本原因在于不同版本的python库存放dll文件的路径有所不同,而pyinstaller并不会根据python库的不同版本而去不同的路径下查找dll文件,因此如果pyinstaller和python库的版本不匹配就会出现错误。
这就是为何有人之前打包都没有问题,但是更新了某个python库后,再进行打包就报错了。
3. 解决办法
将pyinstaller升级到和python对应的版本,这个很难做到,所以直接使用 pip install --upgrade 包名
命令,将pyinstaller和用到的python库全部升级到最新的版本,实在不行就使用pip-review --local --interactive
命令升级所有包(有点暴力哈)
网上有很多 配置 --hidden-import 等方法 虽然可行 但是相对繁琐并且治标不治本。