2016-10-07 5 views
0

最初に、私はマルチプロセッシングには非常に新しいので、非常に簡単で簡単な例を作ることはできません。エラー 'module'オブジェクトを返すPythonマルチプロセッシングは 'myfunc'属性を持たない

C:\Anaconda2\lib\site-packages\IPython\utils\traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package. 
    warn("IPython.utils.traitlets has moved to a top-level traitlets package.") 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
    File "C:\Anaconda2\lib\multiprocessing\forking.py", line 381, in main 
    self = load(from_parent) 
    File "C:\Anaconda2\lib\pickle.py", line 1384, in load 
    return Unpickler(file).load() 
    File "C:\Anaconda2\lib\pickle.py", line 864, in load 
    dispatch[key](self) 
    File "C:\Anaconda2\lib\pickle.py", line 1096, in load_global 
    klass = self.find_class(module, name) 
    File "C:\Anaconda2\lib\pickle.py", line 1132, in find_class 
    klass = getattr(mod, name) 
AttributeError: 'module' object has no attribute 'worker' 

が、私はこの質問は非常にあいまいであることを知っているが、私は誰もが私を指すことができれば:私は、私はこのエラーを複数回取得していたコードを実行

import multiprocessing 

def worker(): 
    """worker function""" 
    print 'Worker' 
    return 

if __name__ == '__main__': 
    jobs = [] 
    for i in range(5): 
     p = multiprocessing.Process(target=worker) 
     jobs.append(p) 
     p.start() 

毎回:これは私が働い例です正しい方向に私はそれを感謝します。

私はWindows上で、Python 2.7でAnacondaで実行していますが、コードは上記とまったく同じです。

EDIT:コマンドプロンプトで直接コードを実行すると、うまく動作しますが、Anacondaを使用してコンソールを実行すると動作しません。誰が理由を知っていますか?

+0

あなたの例はここでうまくいきます。あなたはコードを "単純化"していないと確信していますか? –

+0

どのようにプログラムを実行しましたか?これはWindowsでですか? – tdelaney

+0

私は窓の上にいて、Python 2.7でAnacondaで実行します。コードは上記とまったく同じです。私はそれをIDEのコンソールで直接実行します –

答えて

0

説明したようにAnacondaはマルチプロセスを好まないin this 答え。

答えから:

これは、マルチプロセッシングは、対話インタプリタではうまく動作しないという事実です。主な理由は、Windowsに適用できるfork()関数がないことです。彼らのウェブページ自体に説明されています。

ありがとうございます!

関連する問題