Pickling error: Can#39;t pickle lt;type #39;function#39;gt;(酸洗错误:不能酸洗lt;type functiongt;)
问题描述
我想知道这个错误可能意味着什么:
I am wondering what this error might mean:
PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed
我知道这与使用多核有关.我在集群上运行我的程序,并在我的这行代码中使用了 15 个线程:
I understand that it has something to do with using multiple cores. I am running my program on a cluster and using 15 threads in this line of my code:
gauss2 = PTSampler(ntemps, renwalkers, rendim, lnlike, lnprior, threads=15)
有问题的采样器是在 http:///dan.iel.fm/emcee/current/user/pt/
知道这个错误可能意味着什么吗?
Any idea what this error might mean?
推荐答案
这个错误意味着你试图腌制一个内置的 FunctionType……而不是函数本身.这可能是由于某个地方的编码错误导致了函数的类而不是函数本身.
The error means you are trying to pickle a builtin FunctionType… not the function itself. It's likely do to a coding error somewhere picking up the class of the function instead of the function itself.
>>> import sys
>>> import pickle
>>> import types
>>> types.FunctionType
<type 'function'>
>>> try:
... pickle.dumps(types.FunctionType)
... except:
... print sys.exc_info()[1]
...
Can't pickle <type 'function'>: it's not found as __builtin__.function
>>> def foo(x):
... return x
...
>>> try:
... pickle.dumps(type(foo))
... except:
... print sys.exc_info()[1]
...
Can't pickle <type 'function'>: it's not found as __builtin__.function
>>> try:
... pickle.dumps(foo.__class__)
... except:
... print sys.exc_info()[1]
...
Can't pickle <type 'function'>: it's not found as __builtin__.function
>>> pickle.dumps(foo)
'c__main__
foo
p0
.'
>>> pickle.dumps(foo, -1)
'x80x02c__main__
foo
qx00.'
如果您有一个 FunctionType 对象,那么您需要做的就是获取该类的一个实例——即像 foo 这样的函数.
If you have a FunctionType object, then all you need to do is get one of the instances of that class -- i.e. a function like foo.
这篇关于酸洗错误:不能酸洗<type 'function'>的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:酸洗错误:不能酸洗<type 'function'>
基础教程推荐
- 尝试制作WhatsApp机器人 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
