pyinstaller 常见问题与解决

打包exe时出错

1、‘utf-8’ codec can’t decode byte 0xce in position 122: invalid continuation byte
打包前先输入:

chcp 65001

2、RecursionError: maximum recursion depth exceeded in comparison:
1)在***.spec中添加:

import sys   
sys.setrecursionlimit(100000)

2)执行:

pyinstaller -F ***.spec

运行exe时出错

1、双击运行exe文件闪退
1)打开一个控制台窗口
2)将exe文件拖入控制台,回车执行
3)根据现实的错误信息进行处理

2、No such file or directory:,Failed to execute script
1)将使用到的类库和资源文件打包到一个目录下
方法一:
在打包时指定虚拟环境路径

pyinstaller -D  -p D:\ProgramData\Anaconda3\envs\well\Lib\site-packages nlu.py

方法二:
先使用anaconda 的 activate指令进入到虚拟环境,然后再打包

activate nlu
pyinstaller -D ***.py

经测试,使用方法二时,打包后缺少的文件会更少

2)将缺少的库或资源文件拷贝到exe所在目录下
注:每次重新执行pyinstaller,目标路径下的文件都会被清空,所以,如果程序有更新,需要重新打包发布时,请先将需要拷贝的文件备份好,完成打包后直接拷贝进去即可

3、INTEL MKL ERROR: 找不到指定的模块。 mkl_intel_thread.dll
将 mkl_intel_thread.dll 和 libiomp5md.dll 都拷贝到exe所在目录

4、ImportError: numpy.core.multiarray failed to import
尝试修改模块的版本
opencv-python v3.4.2
numpy v1.16.4+mkl
tersorflow-gpu v1.7.0

你可能感兴趣的:(Python,编程)