- 在ubuntu中,用的是python3.5
executeprebuildpath = ExecutePrebuild()processpool = ProcessPoolExecutor(1)processpool.submit(executeprebuildpath.run).add_done_callback(self.precallback)processpool.shutdown(wait=False)self.runsign = Trueself.runningprebuildsignal()
这样可以正常运行,
但是将代码移植到 mac系统, 用的是python3.7
就报错:
"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/multiprocessing/connection.py", line 136, in _check_closedraise OSError("handle is closed")
OSError: handle is closed
于是就把processpool.shutdown(wait=False) 这个注掉,把这个语句放在 整个程序的最后,
以上错误没再出现, 但是出现别的错误了,
尝试改为:processpool.shutdown(wait=True), 就好了,
同事说,python3.7 的 ProcessPoolExecutor的shutdown 方法有所修改,关闭了某些东西,另外这种
shutdown的方式 也不太友好, 这里先记录以下, 等找到原因 再回来进行补充!!!