私はチームで行っているいくつかのテストのための自動化フレームワークを開発しています。我々は、この酸洗エラーに遭遇しており、いくつかの研究を行った後、私は解決策の数に出くわしたとそれに付随するgithubのページをレビュー:Pathosマルチプロセッシング酸洗いの問題
- Python multiprocessing pickling error
- Multiprocessing: How to use Pool.map on a function defined in a class?
- Pickling issue with python pathos < ---このリンクから、私はコードが正しいライブラリを参照していることを確認しました。
- https://github.com/uqfoundation/pathos
私は哀愁をインストールし、私はそれを正しく実装していると考えているが、私はまだ酸洗のエラーを取得しています。
import multiprocess
collect_host = 'test_host'
collect_name = 'test_collect'
username = 'user'
start_func = test_start_callback(perf_collect=collect_name,
perf_user=username,
perf_host=collect_host,
password= password)
dpool = multiprocess.Pool(1)
args = ('', '')
worker_results = []
worker = dpool.apply_async(start_func, args)
worker_results.append(worker)
dpool.close()
dpool.join()
for result in worker_results:
result.wait()
r = result.get()
assert r, 'No results returned'
test_start_callbackは、引数をとらない関数を生成するためのファクトリ関数です。私は使用されていないコードセグメントを編集しました。
def test_start_callback(dim_collect_host=None, dim_collect_user=None,
perf_host=None, perf_user=None, perf_collect=None,
password=None, tpcc_filename=None):
if perf_host and perf_user and perf_collect:
def perf_test_start():
from <internal> import PerfmonManager
perf = PerfmonManager(host=perf_host,
username=perf_user,
password=password,
collect_name=perf_collect)
perf.start_collect()
return perf_test_start
私は何をしているが、他のSOのリンクで言及されなかった欠落しているか、私はどちらか哀愁でサポートされていないこの関数を渡している方法ですしています。