python multiprocessing pool.map挂起

标签 python dictionary multiprocessing freeze pool

我什至无法使用在 python 2.7 中运行的多处理包(使用 spyder 作为 Windows 上的 UI)来制作最简单的并行处理示例,我需要帮助来解决问题。我已经运行了 conda update 所以所有的包都应该是最新的并且兼容。

即使是 multiprocessing 包文档(如下所示)中的第一个示例也无法运行,它会生成 4 个新进程,但控制台只是挂起。在过去的 3 天里,我已经尝试了所有我能找到的东西,但是没有一个代码可以在没有挂起的情况下运行,将超过 25% 的计算能力分配给这个任务(我有一台 4 核计算机)。

我已经放弃运行我设计的程序,此时需要并行处理,我只是想获得概念证明,以便我可以从那里构建。有人可以解释并指出我正确的方向吗?谢谢

示例 1 来自 https://docs.python.org/2/library/multiprocessing.html

#

from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    p = Pool()
    print(p.map(f, [1, 2, 3]))

来自 http://chriskiehl.com/article/parallelism-in-one-line/ 的示例 2(从原始版本修改而来)

from multiprocessing import Pool

def fn(i):
    return [i,i*i,i*i*i]

test = range(10)

if __name__ == '__main__':    
    pool = Pool() 
    results = map(fn,test)
    pool.close() 
    pool.join() 

如果确实有这个问题的答案,我深表歉意,因为看起来我应该能够完成这样一项适度的任务,但我不是程序员,而且鉴于我的水平非常有限,我发现的资源并没有多大帮助的知识。请让我知道需要哪些进一步的信息。

谢谢。

最佳答案

在我的虚拟机上安装 spyder 后,它似乎是一个 spyder 特定的错误。示例 1 在 IDLE 下工作,通过命令行执行,在 spyder 中执行(先保存然后执行),但在 spyder 中逐行执行时不是。

我建议简单地在 spyder 中创建一个新文件,添加代码行,保存,然后运行它..


相关报告见:

关于python multiprocessing pool.map挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37528646/

相关文章:

python - 从 pandas 列的列表中删除字典

python - Python 中的类常量字典

python - 为什么我不能得到这个简单的 Python 字典的键/值对?

python - 使用 Python 多处理加速从 Postgres 获取大表到 CSV

python - 属性错误 : 'int' object has no attribute 'lower' in TFIDF and CountVectorizer

python - "cumsum"制作标志、计算计数和形成组的逻辑是什么?

python - 使用 importlib 选择模块并在多处理函数中使用

字典列表上的 Python 多处理

python - 我怎样才能在 django admin change_list 模板中获取对象

python - 软盘中应激期数据中的井 ID 和其他注释