PicklingError: args[0] from __newobj__ args has the wrong class
大纲
- 详细说明
- 错误定位
- 问题解决
- 需要注意的类似问题
- TypeError: a bytes-like object is required, not 'str'
详细说明
在跑网上代码的时候出现了这个错误
PicklingError: args[0] from __newobj__ args has the wrong class
用了很长时间终于解决该问题,下面详细说一下。
由于跑的代码是几年前的老代码了,当时原作者使用的是python2.x版本。我则依旧使用python3.x。代码的转换也是用了一个下午,后来才发现,python自带转换方法。如下
2to3 -w ***.py
但是转换也只能转换一些简单地基础的语法问题,比如print,所以后续也一直磕磕绊绊的改代码来跑。
出现错误的时候大概也知道是py2和py3不兼容的问题,在国外社区发现了类似问题,根源大概是因为
python3中的pickle.dumps,它返回字节,而在python2中,它返回str。
后来也证实该问题在py2.7下该错误不存在,而py3下存在该错误。
错误定位
tensorflow内置的preprocessing.VocabularyProcesso函数
一般我们在进行文本处理时,需要写方法建立词汇表和word到idx,以及idx到word的映射关系,这就需要统计词汇表中的所有单词并建立相应的词典。
问题解决
将self去掉。
该文件通常在你的项目里面被命名为preprocess.py
,可以参考下面这个找到对应位置,进行修改。
需要注意的类似问题
TypeError: a bytes-like object is required, not ‘str’
报错原因:
python3和Python2在套接字返回值解码上有区别。可以使用encode(),decode()做切换
- str通过encode()方法可以编码为指定的bytes;
- 把bytes变为str,就需要用decode()方法;
PicklingError: args[0] from __newobj__ args has the wrong class相关推荐
- 类里面装饰器的使用,args[0]=self
针对函数和类单独写装饰器可以理解了,请参考往期文档. 之前写了一个类,然后想把装饰器实现的函数也写在类里面,在类方法加上装饰器,之前一直报错. 现在解决了,就是类里面的参数第一个self,所以一定要注 ...
- Zookeeper服务器动态上下线idea上server类中server.regist(args[0])数组越界解决
Zookeeper服务器动态上下线idea上server类中server.regist(args[0])数组越界解决 运行server服务类时报错:Exception in thread"m ...
- python args kwargs_Python中的args和kwargs
有时,你会看到python中定义函数的时候带有两个奇怪的参数:*args.**kwargs.如果你曾经想知道它们是干什么的,或者想知道你的IDE为什么在main()函数中定义它们,那么本文可以帮助到你 ...
- python args kwargs 理解_*args和**kwargs在python中的作用
我发现PYTHON新手在理解*args和**kwargs这两个魔法变量的时候有些困难.他们到底是什么呢? 首先,我先告诉大家一件事情,完整地写*args和**kwargs是不必要的,我们可以只写*和* ...
- java args用法_Java中args参数数组的用法说明代码
本篇文章小编给大家分享一下Java中args参数数组的用法说明代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. main方法args参数用于接收用户 ...
- 使用Multiprocessing.process时出现PicklingError解决方法
这里写自定义目录标题 问题 原因 解决办法 问题 在使用Flask作为Electron程序的后端框架时,在Falsk主程序中使用Multiprocessing的process函数来创建一个新的进程,p ...
- BlogEngine 1.0中的编码问题及解决方案
似乎有不少朋友在下在BlogEngine 1.0的源代码之后会发现居然无法正确编译,因为{SiteRoot}\User Controls\CommentView.cs里的代码遇到了错误: public ...
- 贝叶斯网络结构学习之K2算法(基于FullBNT-1.0.4的MATLAB实现)
题目:贝叶斯网络结构学习之K2算法(基于FullBNT-1.0.4的MATLAB实现) 有关贝叶斯网络结构学习的一基本概念可以参考:贝叶斯网络结构学习方法简介 有关函数输入输出参数的解释可以参考:贝叶 ...
- Android 10.0 系统启动之SystemServer进程-[Android取经之路]
摘要:上一节讲解了Zygote进程的整个启动流程.Zygote是所有应用的鼻祖.SystemServer和其他所有Dalivik虚拟机进程都是由Zygote fork而来.Zygote fork的第一 ...
最新文章
- 栈和堆的区别(转 知乎)
- 转载几个和职业建议相关的文章
- insert数据时,获取插入数据的id
- 数字变化滚动到指定数字的文字特效
- Matlab 条形图实例
- 机器学习-特征处理/归一化/标准化/降维03
- 在FF与IE中使用数据岛
- 第一章 Shiro简介——《跟我学Shiro》
- 一篇文章快速搞懂C++生成随机数
- 架构师的第一步:学习两种抽象视角(Abstraction View)
- 山西煤炭职业技术学院计算机信息管理,山西煤炭职业技术学院计算机信息系
- 封装JedisClient.提供API实现对redis的操作
- ndarray负值统一置0,正数不变
- 五、瞰景Smart3D空三解算
- 【网站源码】3D元素周期表源码
- 从四面体数据中提取表面
- 以网易云为例,使用审查元素(开发者选项)获取音乐资源
- pandoc 使用方法
- 【Proteus仿真】Arduino UNO利用Stepper库实现uln2003驱动步进电机转动
- oracle ora 604,ORA-01092:ORACLE实例终止,强制断开连接 ORA 00704 00604 00942