当前系统使用的Python版本为3.6.0.
运行一些网上下载的代码时,由于代码经常是数年前用Python 2.x 编写的,一些函数用法上会出现变化,直接运行会发生报错。
记录一下今天见到的小问题:
1.Error ‘dict’ object has no attribute ‘iteritems’
Python3 中 字典的 iteritems 属性被改名为了 item
报错信息 | 对应方法 |
---|---|
Error ‘dict’ object has no attribute ‘iteritems’ | 把dict.iteritems() 改成 dict.items() 即可 |
更多的,
dict.iterkeys() |
dict.itervalues() |
2.from pil import image 报错 DLL load failed
pillow(PIL)报错找不到DLL,更新库可以解决
报错信息 | 对应方法 |
---|---|
from pil import image 报错 DLL load failed: 找不到指定的程序 | 我将pillow 从4.1.0升级到了4.2.1(最新),解决 |
出现这样的错误原因还不是很理解,但与相关的库文件安装不全可能有关,所以升级了pillow,解决了问题。
3.TypeError: ‘dict_keys’ object does not support indexing
在python2中,key()方法返回的是一个列表;
而在python3中,其返回的是一个dict_keys对象;
所以我们使用 索引index ,取key()中的一个元素的时候,
在python3中,就不能直接使用,要使用list方法将dict_keys对象转换成列表。
参考
简单的讲,用 list() 把报错部分的 dict_keys() 对象变成 列表对象 ,就可以使用index索引了。