2

コンピューターの CPU のクアッドコア プロセッサで for ループの実行を並列化したい。ここで検討した理由により、joblib.Parallel ではなく pp (Python-Parallel) を使用しています。

しかし、私はエラーが発生しています:

Traceback (most recent call last):
  File "batching.py", line 60, in cleave_out_bad_data
    job1 = job_server.submit(cleave_out, (data_dir,dirlist,), (endswithdat,))
  File "/homes/ad6813/.local/lib/python2.7/site-packages/pp.py", line 459, in submit
    sfunc = self.__dumpsfunc((func, ) + depfuncs, modules)
  File "/homes/ad6813/.local/lib/python2.7/site-packages/pp.py", line 637, in __dumpsfunc
    sources = [self.__get_source(func) for func in funcs]
  File "/homes/ad6813/.local/lib/python2.7/site-packages/pp.py", line 704, in __get_source
    sourcelines = inspect.getsourcelines(func)[0]
  File "/usr/lib/python2.7/inspect.py", line 690, in getsourcelines
    lines, lnum = findsource(object)
  File "/usr/lib/python2.7/inspect.py", line 529, in findsource
    raise IOError('source code not available')
IOError: source code not available

その理由は python-2.7 bugのようです。

誰かがこれに遭遇して解決しましたか?


これが私のコードです:

def clean_dir(data_dir, dirlist):
  job_server = pp.Server()
  job1 = job_server.submit(clean, (data_dir,dirlist,), (endswith,))

def clean(data_dir, dirlist):
  [good_or_bad(file, data_dir) for file in dirlist if endswith(file)]
4

1 に答える 1

0

hereに触発されて、同様の問題を修正した方法は、Pythonシェルで関数を1行ずつ入力するのではなく、コードと関数を「test.py」のような1つのファイルに保存し、このファイルをpythonで呼び出すことです。私は私のために働いています。

于 2015-04-17T15:43:37.927 に答える