gpt4 book ai didi

Windows 10 上的 Python 多处理

转载 作者:太空狗 更新时间:2023-10-29 21:09:43 25 4
gpt4 key购买 nike

我在 Windows 7 电脑和 Windows 10 笔记本电脑上运行一些代码:

def project(filename):
**Do Something Here**


if __name__ == '__main__':
pool = Pool(processes=4)
results = [pool.apply_async(project, args=(filename,)) for filename in filenamelist]
output = [p.get() for p in results]
print output

两台计算机都是双核/4 线程,因此它们应该都可以运行 4 个进程。我遇到的问题是,当我在 Windows 10 上运行代码时,我运行了 4 个 python 进程,但它们使用 0% 的 cpu 并且它们不会输出任何东西,这与 Windows 7 电脑不同,它将在所有 4 个上完全使用线程并完美地工作。

如果我不使用多处理,代码在 Windows 10 笔记本电脑上运行良好,所以问题一定与此有关。使用 Python 进行多处理是否不能在 Windows 10 中运行?顺便说一下,我在两台机器上都运行 Python 2.7。

[编辑]:Windows 7 pc 处理器是 i5-650,Windows 10 笔记本电脑处理器是 i3-2370M

[更新]:我将笔记本电脑恢复到 Windows 8.1,并且完全相同的代码按预期运行,这绝对是 Windows 10 的问题。

[编辑]:我用来生成 filenamelist 的方法如下,但这在 Windows 7 上运行良好。

def get_unfinished_files(indir, outdir):
filenamelist = []
for filename in os.listdir(indir):
if filename not in os.listdir(outdir) and filename.endswith('.png'):
filenamelist.append(filename)
return filenamelist

最佳答案

有类似的问题。正如我发现的那样,就我而言,这只是 python 中的一个错误: https://bugs.python.org/issue35797

通过 venv 使用多处理 时发生。

错误修复已在 Python 3.7.3 中发布。

关于Windows 10 上的 Python 多处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32296037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com