Traceback (most recent call last):
File "C:\Users\Jun\AppData\Local\Programs\Python\Python35\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 14, in run
module.run()
File "C:\Users\Jun\AppData\Local\Programs\Python\Python35\lib\site-packages\cx_Freeze\initscripts\Console.py", line 26, in run
exec(code, m.__dict__)
File "D:/ruanjian/new/Ui-Disign/hand_up_625.py", line 25, in <module>
from keras.models import load_model
File "C:\Users\Jun\AppData\Local\Programs\Python\Python35\lib\site-packages\keras\__init__.py", line 3, in <module>
from . import utils
File "C:\Users\Jun\AppData\Local\Programs\Python\Python35\lib\site-packages\keras\utils\__init__.py", line 4, in <module>
from . import data_utils
File "C:\Users\Jun\AppData\Local\Programs\Python\Python35\lib\site-packages\keras\utils\data_utils.py", line 19, in <module>
from multiprocessing.pool import ThreadPool
ImportError: No module named 'multiprocessing.pool'
答案 0 :(得分:0)
首先,您似乎缺少了multiprocessing library,您可以通过点子获得。
第二,Python 3.5's multiprocessing documentation不包括ThreadPool。如果您想要一个进程池,则在寻找:
class multiprocessing.pool.Pool([processes[, initializer[, initargs[, maxtasksperchild[, context]]]]])
答案 1 :(得分:0)
尝试在'multiprocessing'
脚本中将packages
添加到build_exe_options
的{{1}}列表中:
setup.py
有关更多详细信息,请参见cx_Freeze documentation。
请注意,冻结的脚本必须调用build_exe_options = {"packages": ['multiprocessing']}
# ...
setup( name = ..., # complete!
...
options = {"build_exe": build_exe_options},
executables = [Executable(...)])
才能继续进行多处理。根据{{3}}:
添加对冻结使用多处理程序的程序以生成Windows可执行文件的支持。 (已通过 py2exe , PyInstaller 和 cx_Freeze 进行了测试。)
需要在主模块的
multiprocessing.freeze_support()
行之后直接调用此函数。例如:if __name__ == '__main__'
如果省略了
from multiprocessing import Process, freeze_support def f(): print('hello world!') if __name__ == '__main__': freeze_support() Process(target=f).start()
行,则尝试运行冻结的可执行文件将引发RuntimeError。在Windows以外的任何其他操作系统上调用
freeze_support()
时均无效。此外,如果该模块由Windows上的Python解释器正常运行(该程序尚未冻结),则freeze_support()
无效。