私は複数のサーバーで同時にいくつかのスクリプトを実行しようとしています。 サンプルコードです。並列処理用のPythonファブリック
server1 = ""
server2 = ""
env.parallel = True
@task
@hosts(server1)
@parallel
def run_shell1():
run("sh shell1.sh")
@task
@hosts(server2)
@parallel
def run_shell2():
run("sh shell2.sh")
そして、私はこのような工場のコマンド実行:
fab run_shell1 run_shell2
をしかし、私は、コードを実行したときに、私はこのようなエラーました:
pickle.PicklingError: Can't pickle <function inner at 0x0000000003280438>: it's
not found as fabric.tasks.inner
はまた、いくつか他のエラーがありましたがマルチプロセッシング/ process.pyとfabric/job_queue.pyなどに関するメッセージ
ファブリックのバージョンを確認しました.1 .11.1。
これは完全なコードですか?私は生地の専門家ではありませんが、何かが欠落しているようです。 –
はい、ほぼ完全なコードです。何が欠けている? –
エラーメッセージに基づいて、ネストされたタスクや何かのような内部的な機能が期待されますが、 '@ parallel'と何か関係があります。 –