编辑:
尝试将 engineio
、socketio
、flask_socketio
、threading
、time
、queue
添加到你的设置脚本中传递给 setup
调用的 build_exe
选项 的 packages
列表中:
...
packages = []
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.threading
导入threading
、time
和queue
,但是cx_Freeze
可能看不到,因为engineio.async_drivers.threading
是动态导入的。
如果queue
不起作用,请替换为Queue
。
您可能仍然需要将进一步的软件包添加到packages
列表中,例如eventlet
、gevent
、uwsgi
、six
、urllib3
等。
请发布您收到的错误消息的完整堆栈跟踪。查看错误发生的地方并查看engineio
的源代码可能有助于找到缺失的软件包。