【问题标题】:What is mean when it raises a PicklingError?当它引发 PicklingError 时是什么意思?
【发布时间】:2016-04-26 08:49:38
【问题描述】:

喂! 我是 python 3 的新手。 我正在使用 pvmomi 模块从我的服务器获取 vm 的字典。当我尝试使用多处理运行我的文件时,出现以下错误:

_pickle.PicklingError: Can't 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。 感谢帮助。它让我发疯!

【问题讨论】:

    标签: python-3.x multiprocessing pickle


    【解决方案1】:

    stdlib pickle (.py) 模块导入内置的 C 编码 _pickle 模块。 pickle 模块可以序列化大多数 Python 对象,用于在进程之间传输 Python 对象。特别是,pickle 被多处理使用(也可能被 pyvmomi 使用)。用户定义的类有时会定义特殊的方法(reducereducex,我相信)来帮助 pickle 和 unpickle 过程。

    异常消息表明属性查找失败。也许 pyVmomi 对象未正确配置为腌制。您可以查看模块文档,看看它是否说明了泡菜支持。

    【讨论】:

    • 感谢您的回答。我认为你的权利。并且没有为此配置 pyVmomi 对象。您知道对这些 Objekts 使用多处理的另一种方法吗?非常感谢您的帮助!
    • 很遗憾,没有。
    • 感谢您的回答!
    猜你喜欢
    • 2017-05-01
    • 2011-04-21
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    相关资源
    最近更新 更多