2016-08-05 24 views
3

私はマルチプロセッシング& pathosを使っていくつかのpythonコードを書いています。私は、ローカルマシン上で正常に動作するmutiprocessingを使用するのに慣れるための小さなテストプログラムを書いていますが、別のクラスタで実行することを拒否しています。私は次のエラーを取得していますPythonマルチプロセッシングとパスコード:インポートエラー

Traceback (most recent call last): 
    File "./multi.py", line 116, in <module> 
    pool = pathos_multiprocessing.Pool(processes=pool_size,maxtasksperchild=1,) 
    File "/usr/local/lib/python3.4/dist-packages/multiprocess/pool.py", line 150, in __init__ 
    self._setup_queues() 
    File "/usr/local/lib/python3.4/dist-packages/multiprocess/pool.py", line 243, in _setup_queues 
    self._inqueue = self._ctx.SimpleQueue() 
    File "/usr/local/lib/python3.4/dist-packages/multiprocess/context.py", line 110, in SimpleQueue 
    from .queues import SimpleQueue 
    File "/usr/local/lib/python3.4/dist-packages/multiprocess/queues.py", line 22, in <module> 
    import _multiprocess as _multiprocessing 
ImportError: No module named '_multiprocess' 

が、ときに私は明らかに存在

pip3 list 

哀愁とマルチプロセッシングモジュールの両方あるん

multiprocess (0.70.4) 
nbconvert (4.2.0) 
nbformat (4.0.1) 
nose (1.3.1) 
notebook (4.2.0) 
numpy (1.10.4) 
oauthlib (0.6.1) 
pathos (0.2.0) 

どれでも明るいのアイデアを理由これは起こっている可能性があります歓迎!

小さなテストコードは次のとおりです。

#! /usr/bin/env python3 

import pathos.multiprocessing as mp 
import os 
import random 

class Pool_set: 
    def pool_fun(directory_name): 
     cwd=os.getcwd() 
     os.mkdir(str(directory_name)) 
     directory=os.path.join(cwd,str(directory_name)) 
     os.chdir(directory) 
     os.system('{}'.format('sleep '+str(directory_name))) 
     cwd2=os.getcwd() 
     print(cwd2) 
     test_file = open('test_file.out','w') 
     test_file.write(cwd2) 
     print("Finished in "+directory) 
     os.chdir(cwd) 

if __name__ == '__main__': 


    config=[] 
    pool_set = Pool_set 
    for i in (random.sample(range(1,100),3)): 
     config.append(i) 

    pool_size = mp.cpu_count() 
    pool = mp.Pool(processes=pool_size,maxtasksperchild=1,) 

    pool_outputs = pool.map(pool_set.pool_fun,config) 
    pool.close() 
    pool.join() 
+0

問題なくプログラムを実行できます。入力したコマンドと完全なスタックトレースを表示できますか? – laike9m

+0

ちょっとlaike9m、完全なトレースバックが含まれています。スクリプトは実行可能です。私は./multi.pyとして実行します。ありがとう – abinitio

+0

私はなぜ考えることができません。 'python3 multi.py'を実行しようとしましたか? – laike9m

答えて

0

私はpathosmultiprocess著者です。私はあなたが_multiprocessを見つけることができない2つの理由が考えられます。最初の、そして最も一般的な理由は、あなたがC++コンパイラを持っていないということです。 multiprocessingにはC++コンパイラが必要です.Windowsであれば、インストールする必要があります。参照:https://wiki.python.org/moin/WindowsCompilers。 2つ目は、prefixなどを混乱させると、それがインストールされた方法との間でPATH/PYTHONPATHの問題が見つかりませんでしたが、それは遠い少数のケースです。

関連する問題