2017-11-15 22 views
3

enter image description hereJupyterのノートブックは、私は基本的にはマルチプロセッシングモジュールを使用していますマルチプロセッシング(Pythonの3)

Jupyterノート

を使用して処理を終了したことがない、私はまだマルチプロセッシングの機能を学んでいます。私はDusty Phillipsの本を使っています。このコードはそれに属しています。 Windows PowerShellの(ないjupyterノートブック上の)オン

import multiprocessing 
import random 
from multiprocessing.pool import Pool 

def prime_factor(value): 
    factors = [] 
    for divisor in range(2, value-1): 
     quotient, remainder = divmod(value, divisor) 
     if not remainder: 
      factors.extend(prime_factor(divisor)) 
      factors.extend(prime_factor(quotient)) 
      break 
     else: 
      factors = [value] 
    return factors 

if __name__ == '__main__': 
    pool = Pool() 
    to_factor = [ random.randint(100000, 50000000) for i in range(20)] 
    results = pool.map(prime_factor, to_factor) 
    for value, factors in zip(to_factor, results): 
     print("The factors of {} are {}".format(value, factors)) 

私は、次の

Process SpawnPoolWorker-5: 
Process SpawnPoolWorker-1: 
AttributeError: Can't get attribute 'prime_factor' on <module '__main__' (built-in)> 

を参照セルが動作して終了したことがない理由を私は知らないのですか?

答えて

3

Jupyterのノートブックでは、異なるideの問題がデザイン機能であるようです。したがって、関数(prime_factor)を別のファイルに書き込んでモジュールをインポートする必要があります。さらに、我々は調整をしなければならない。例えば、私の場合、私はdefs.pyとして知られているファイルに関数をコード化しているが

def prime_factor(value): 
    factors = [] 
    for divisor in range(2, value-1): 
     quotient, remainder = divmod(value, divisor) 
     if not remainder: 
      factors.extend(prime_factor(divisor)) 
      factors.extend(prime_factor(quotient)) 
      break 
     else: 
      factors = [value] 
    return factors 

その後jupyterのノートに私はこれは私の問題を解決し

import multiprocessing 
import random 
from multiprocessing import Pool 
import defs 



if __name__ == '__main__': 
    pool = Pool() 
    to_factor = [ random.randint(100000, 50000000) for i in range(20)] 
    results = pool.map(defs.prime_factor, to_factor) 
    for value, factors in zip(to_factor, results): 
     print("The factors of {} are {}".format(value, factors)) 

次の行を書いた

enter image description here

関連する問題