簡體   English   中英

文檔中的示例在 Jupiter Notebook 中不起作用

[英]Example from documentaion doesn't work in Jupiter Notebook

我看過文檔。 有一個例子

from multiprocessing import Pool

def f(x):
    return x*x

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

問題是:它不起作用。 我在 Jupiter Notebook 單元中運行此代碼。 而這個單元不會引發任何異常。 但木星的終端確實如此。 它說: AttributeError: Can't get attribute 'f' on <module '__main__' (built-in)>

正如這里所寫的,問題可能是因為我不使用__name__ == '__main__'條件。 但是我願意。

我從文檔中復制並粘貼了示例,但它不起作用。 我該怎么辦?

我懷疑你在 Windows 上運行。 如果是這樣,這是一個已知問題。 請參閱這篇文章 您需要將函數f添加到文件中,例如worker.py

工人.py

def f(x):
    return x*x

然后你的 jupyter notebook 代碼變成了:

from multiprocessing import Pool
import worker


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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM