这是一张list of what can be pickled。特别是,函数只有在模块的顶层定义时才是可选择的。

这段代码:import multiprocessing as mp

class Foo():

@staticmethod

def work(self):

pass

if __name__ == '__main__':

pool = mp.Pool()

foo = Foo()

pool.apply_async(foo.work)

pool.close()

pool.join()

产生的错误与您发布的错误几乎相同:Exception in thread Thread-2:

Traceback (most recent call last):

File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner

self.run()

File "/usr/lib/python2.7/threading.py", line 505, in run

self.__target(*self.__args, **self.__kwargs)

File "/usr/lib/python2.7/multiprocessing/pool.py", line 315, in _handle_tasks

put(task)

PicklingError: Can't pickle : attribute lookup __builtin__.function failed

问题是pool方法都使用mp.SimpleQueue将任务传递给工作进程。通过mp.SimpleQueue的所有内容都必须是可选取的,并且foo.work不可选取,因为它不是在模块的顶层定义的。

它可以通过在顶层定义一个函数来修复,该函数调用foo.work():def work(foo):

foo.work()

pool.apply_async(work,args=(foo,))

注意foo是可选取的,因为Foo是在顶层定义的,而foo.__dict__是可选取的。

python functiontype_Python多处理PicklingError:无法pickletype'function'相关推荐

  1. python 重载的实现(single-dispatch generic function)

    DAY 11. python 重载 函数重载是指允许定义参数数量或类型不同的同名函数,程序在运行时会根据所传递的参数类型选择应该调用的函数 ,但在默认情况下,python是不支持函数重载的,定义同名函 ...

  2. 【Python函数式编程】——偏函数(Partial function)

    Python函数式编程--偏函数   Python的 functools 模块提供了很多有用的功能,其中一个就是偏函数(Partial function).要注意,这里的偏函数和数学意义上的偏函数不一 ...

  3. python fabric 部署falcon tcp closewait monitor function

    @task @roles('userdefine') def falcon_plugin_ss_expand():# 下载软件run("""yum install -y ...

  4. python调用mysql中的自定义function并且返回结果

    首先在Mysql中创立一个叫ForeignKeyTest的function,链接如下: https://blog.csdn.net/appleyuchi/article/details/7945291 ...

  5. python中的新式类与旧式类的一些基于descriptor的概念(下)

    3. Descriptor介绍 3.1 Descriptor代码示例 3.2 定义 3.3 Descriptor Protocol(协议) 3.4 Descriptor调用方法 4. 基于Descri ...

  6. 我使用Python和Django在自己的网站上建立了一个会员专区。 这是我学到的东西。

    I decided it was time to upgrade my personal website in order to allow visitors to buy and access my ...

  7. Python 实现自动化批量重打包Android Apps

    写在前面的话 无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点这里可以跳转到教程 https://w ...

  8. 用Python解析AndroidManifest.xml文件找MainActivity

    写在前面的话 这个是一篇水博客,因为我知道只要是个大二的小朋友就可以搞定,我大二就一天在搞这些事情,今天纯属吃饱了撑着,想敲键盘,等实验结果然后随便写写.我知道大家都会的,不会的小朋友随便看看然后自己 ...

  9. python代码实现插入排序

    python代码实现插入排序 实现思路: 1.从数组的第二个数据开始往前比较,即一开始用第二个数和他前面的一个比较,如果 符合条件(比前面的大或者小,自定义),则让他们交换位置. 2.然后再用第三个数 ...

最新文章

  1. 一.Linq to JSON是用来干什么的?
  2. python中两个矩阵之间的点乘_Python基础--数据分析库--Numpy
  3. selenium search
  4. 用python设计学生管理系统_基于python和tkinter实现的一个简单的学生信息管理系统...
  5. 4步精准诊断“门店数字化”问题,助力门店起死回生
  6. Centos下安装X Window+GNOME Desktop+FreeNX
  7. 2017.9.28 lca 失败总结
  8. ids for this class must be manually assigned before calling save():Xxx
  9. dreamwave php,thinkphp+dreamwaver技巧
  10. python后台架构Django教程——manage.py命令
  11. java中文输出乱码_java汉字乱码解决办法
  12. 虚拟机安装苹果系统(Mac OSX 10.15包含所有资源)
  13. ember helper
  14. UOM Convertion Rate API
  15. 【9月16日】中文信息MMT模型
  16. 操作系统作业之银行家算法(c语言实现)
  17. 阿里云服务器宽带多少合适?宽带选择方法及5M宽带注意事项
  18. 用户画像如何分析 用户画像如何获取
  19. 双系统装完只能u盘启动_u盘装双系统开机没有系统选择界面怎么解决
  20. 塑壳断路器选型需关注的5个重要参数

热门文章

  1. 北斗三号+4G双模遥测终端机有何功能?
  2. IaaS、PaaS、SaaS、BaaS和FaaS, 这些区别你真的了解吗?
  3. iOS开发通过微信学习WCDB(四)
  4. 打开计算机没有运行程序吗,打印机后台程序服务没有运行怎么办
  5. 谷歌浏览器开发者模式,屏幕类型选择
  6. 一站式元数据治理平台——Datahub入门宝典
  7. 激光SLAM技术总结(1)激光SLAM对比视觉V-SLAM
  8. iOS选取图片与拍照保存图片
  9. mysql监控死锁_mysql死锁监控
  10. 博客花园典型用户和场景