gpt4 book ai didi

Python:无法 pickle 模块对象错误

转载 作者:太空狗 更新时间:2023-10-29 18:21:43 25 4
gpt4 key购买 nike

我正在尝试 pickle 一个大类并获得

TypeError: can't pickle module objects

尽管浏览了整个网络,但我无法确切地弄清楚这是什么意思。而且我不确定是哪个 module object 导致了问题。有没有办法找到罪魁祸首?堆栈跟踪似乎没有任何指示。

最佳答案

Python 无法 pickle 模块对象才是真正的问题。有充分的理由吗?我不这么认为。使模块对象不可调用导致 python 作为并行/异步语言的脆弱性。如果你想 pickle 模块对象,或者 python 中的几乎任何东西,那么使用 dill

Python 3.2.5 (default, May 19 2013, 14:25:55) 
[GCC 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66))] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import dill
>>> import os
>>> dill.dumps(os)
b'\x80\x03cdill.dill\n_import_module\nq\x00X\x02\x00\x00\x00osq\x01\x85q\x02Rq\x03.'
>>>
>>>
>>> # and for parlor tricks...
>>> class Foo(object):
... x = 100
... def __call__(self, f):
... def bar(y):
... return f(self.x) + y
... return bar
...
>>> @Foo()
... def do_thing(x):
... return x
...
>>> do_thing(3)
103
>>> dill.loads(dill.dumps(do_thing))(3)
103
>>>

在这里获取 dill:https://github.com/uqfoundation/dill

关于Python:无法 pickle 模块对象错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2790828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com