Ich entwickle ein Automatisierungs-Framework für einige Tests, die wir in meinem Team durchführen. Wir haben in diesem Abbeizen Fehler kommen und nach einigen Recherchen stieß ich auf eine Reihe von Lösungen und überprüft die begleitenden Github Seite:Pathos Multiprocessing Beizen Problem
- Python multiprocessing pickling error
- Multiprocessing: How to use Pool.map on a function defined in a class?
- Pickling issue with python pathos < --- Von diesem Link Ich habe bestätigt, dass der Code auf die richtige Bibliothek verweist.
- https://github.com/uqfoundation/pathos
ich installiert Pathos und ich glaube, es richtig umgesetzt haben, aber ich bin immer noch das Abbeizen Fehler. Hier ist der Beispielcode und Traceback:
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'
Die test_start_callback ist eine Fabrik-Funktion, eine Funktion zu erzeugen, die keine Argumente annimmt. Ich habe das Codesegment, das nicht verwendet wird, weggelassen.
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
Was soll ich das fehlt in der anderen nicht so Links erwähnt oder ist die Art, wie ich diese Funktion nicht entweder durch Pathos unterstützt werde vorbei.