2016-04-26 60 views
0

Hy there! 我是python 3上的新手。 我使用pvmomi模塊從我的服務器獲取虛擬機的字典。當我嘗試運行我的文件,用多,我得到以下錯誤: 當它引發PicklingError時是什麼意思?

_pickle.PicklingError:不能鹹菜:上pyVmomi.VmomiSupport屬性查找vim.VirtualMachine失敗

這是什麼意思?

這裏是我的代碼的一部分:

def login(vm): 
    #do something 

if __name__=='__main__': 
    cpu = mp.cpu_count() 
    workers = mp.Pool(cpu) 
    workers.map(login,range(1)) 
    for vm in vmDict: 
     login(vm) 

我最大的問題來自於for循環。我需要這個循環來爲每個詞典做好工作,但只有一名工作人員完成這項工作。現在我已經在下面配置了我的代碼,它引發了PicklingError。 感謝您的幫助。它讓我瘋狂!

回答

1

stdlib pickle(.py)模塊導入內置的C編碼的_pickle模塊。 pickle模塊可以序列化大多數Python對象,並用於在進程之間傳輸Python對象。特別是,pickle被多處理(也許是pyvmomi)使用。用戶定義的類有時會定義特殊的方法(我相信減少reducex),以幫助泡菜和unpickle過程。

異常消息說屬性查找失敗。也許pyVmomi對象沒有正確配置爲pickle。你可能會檢查模塊文件,看看它是否提供了有關pickle支持的內容。

+0

感謝您的回答。我認爲你的權利。並且pyVmomi對象沒有爲此配置。你知道另一種使用這些對象的多處理的方法嗎?非常感謝您的幫助! – Melody

+0

不幸的是,沒有。 –

+0

感謝您的回答! – Melody