编辑:
尝试将engineio, socketio, flask_socketio, threading, time,添加queue到设置脚本中传递给调用的选项packages列表中:build_exe setup
...
packages = [] # Add here the list of packages you have already included
packages += ['engineio', 'socketio', 'flask_socketio', 'threading', 'time', 'queue']
...
setup(...,
options={'build_exe': {...,
'packages'=packages}})
正如 espretto 在您链接的主题中发布的那样:
显然engineio使用该importlib模块来动态导入与所选模块对应的任何模块async_mode
cx_Freeze不解释此代码,因此不知道engineio需要包含的子模块,您需要告诉它。
engineio.async_drivers.threadingimports和threading,但可能不会看到,因为是动态导入的。timequeuecx_Freezeengineio.async_drivers.threading
如果queue不起作用,请替换为Queue.
您可能仍需要将更多包添加到packages列表中,例如eventlet, gevent, uwsgi, six, urllib3, ...
请发布您收到的错误消息的完整堆栈跟踪。查看错误发生的位置并查看源代码engineio可能有助于找到丢失的包。