Hy那里! 我是python 3的新手。 我正在使用pvmomi模块从我的服务器获取vm的字典。当我尝试运行我的文件,多处理,我得到以下错误: 的 的
的_pickle.PicklingError:无法pickle: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循环。我需要这个循环来为每个dictitem完成工作,但只有一个池工作者完成这项工作。现在我已经将我的代码配置到下面,它引发了PicklingError。 感谢帮助。它让我发疯了!
答案 0 :(得分:1)
stdlib pickle(.py)模块导入内置的C编码_pickle模块。 pickle模块可以序列化大多数Python对象,并用于在进程之间传输Python对象。特别是,pickle由多处理(也许是pyvmomi)使用。用户定义的类有时会定义特殊的方法(我相信 reduce 和 reducex )来帮助完成pickle和unpickle过程。
异常消息表明属性查找失败。也许pyVmomi对象没有正确配置为pickle。您可以查看模块文档,看看它是否说明了泡菜支持。