这两天从Github上下载2.7版本程序在3.5版本运行时TypeError: a bytes-like object is required, not 'str'这个错误花了我一天的时间来改找原因,下面将方法总结如下,一句话改动,屡试不爽:
报错如下:
Traceback (most recent call last):
File "cf_gan.py", line 226, in <module>
main()
File "cf_gan.py", line 144, in main
param = pickle.load(open(workdir + "model_dns_ori.pkl"))
TypeError: a bytes-like object is required, not 'str'
博文:https://blog.youkuaiyun.com/Kerrwy/article/details/79457028给了很有用的信息,文章如下:
pickle.load()
当pickle.load(file)时,会直接报错:TypeError: file must have ‘read’ and ‘readline’ attributes;
当使用下面的这个代码运行时,
with open(file, 'rb') as f:
pickle.load(f)12
会报错UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0x8b in position 6: ordinal not in range(128)。
解决方法1:替换代码中的pickle.load(f)为pickle.load(f, encoding=’bytes’)即可,在p