2016-04-15 102 views
1

我試圖在多個服務器上同時運行一些腳本。 以下是示例代碼。蟒蛇織物並行處理

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 

也有一些其他錯誤關於multiprocessing/process.py和fabric/job_queue.py等的消息。

我檢查了織物的版本,它是1 .11.1。

+0

這是您的完整碼?我不是布料專家,但似乎缺少一些東西。 –

+0

是的,它幾乎是完整的代碼。什麼不見​​了? –

+0

不知道,基於錯誤消息,我會期望看到一些內部函數,如嵌套任務或其他內容 - 但也許它與'@ parallel'有關,我自己並沒有使用該功能。 –

回答