Python3因os.walk()和多处理而挂起

时间:2018-08-10 07:57:13

标签: python python-3.x multiprocessing python-multiprocessing os.walk

我找到了使用多处理模块进行文件扫描的代码。一切在Linux上的python 2.7上都可以正常工作,但是在Linux上的python 3上也可以运行相同的代码,在Windows上的python 2或python 3上却无法工作,我也不知道如何解决它并寻求帮助:(

这是脚本代码所在的链接:https://gist.github.com/samuelsh/a8be5bc93fcd7ff256c9

  • 在Windows上的Python 2或3中,脚本崩溃了,并且python解释器向我显示我需要使用freeze_support(),但是当我在脚本代码中添加freeze_support()函数时,我的所有更改都没有给我带来成功
    • 在执行以下代码行dirpath = dirpath_queue.get()后,Windows上的Bash子系统中的Python 2或3在进程中挂起explor_path()函数
    • 在Linux上的Python 3中,在explorer_path()中的dirpath = dirpath_queue.get()之后挂起的问题也与此相同
    • 在Linux上的Python 2中运行完美。

我没有任何假设,如果相同的代码在Python 2上运行,为什么进程会在Python 3上挂起。试图将map_async()更改为imap_unordered()函数,但没有帮助。

有人可以帮助我在Python 3上启动该代码吗?

0 个答案:

没有答案