1.1 环境
flask 2.2.2
1.2 socket问题
ValueError: Invalid async_mode specified
查了一下发现这个问题很多人问。
Invalid async_mode specified · Issue #35 · miguelgrinberg/python-socketio · GitHub
里面有很多人的解决方案,我添加了以下语句解决问题。(我用的是waitress,安装eventlet不可行)
from engineio.async_drivers import threading
socketio = SocketIO(async_mode="threading")
1.3 datas提前加入.spec
flask结构所需的static和templates在.spec写出,否则会在运行时找不到资源。(关于路径应该如何写我也没有很清晰)
jinja2.exceptions.TemplateNotFound: xxx/xxx.html
由于在blueprints的每个模块下都分别写了各自的static和templates都要手动加进去,比起重新规划这些文件夹和重写路径,手动写到.spec里还是更划算。
datas=[('./blueprints/static','blueprints/static'),('./blueprints/templates','blueprints/templates')],
#节选自.spec文件
1.4 找不到xxx.pt
FileNotFoundError: [Errno 2] No such file or directory: xxx/xxx/xxx.pt
这是一个python包里的资源,由于没用pyinstaller的-F选项,在生成的dist/app文件夹下直接粘贴这个包解决。暂时没有其他解决方法。
1.5 找不着某个包
ModuleNotFoundError: No module named 'sklearn.ensemble._forest'
在.spec里的hiddenimports缺什么补什么
hiddenimports=['sklearn.ensemble._forest']
#节选自.spec