为什么在使用Python 2.6时io模块对象没有属性'RawIOBase
我在尝试用Python创建一个类,想用到'RawIOBase',代码如下。
try:
import io
except ImportError:
class Serial(PosixSerial, FileLike):
pass
else:
class Serial(PosixSerial, io.RawIOBase):
pass
我是在用Python 2.6运行这个代码,但出现了一个错误:
AttributeError: 'module' object has no attribute 'RawIOBase'
我查了一下,发现RawIOBase从Python 2.6开始是支持的。
1 个回答
7
确保你没有一个叫 io.py
的文件。如果有的话,它可能会覆盖标准库中的 io
模块。你可以通过打印 print(io)
来检查加载的是哪个文件作为 io
模块。正常情况下,它应该返回类似 <module 'io' from '/usr/lib/python2.6/io.pyc'>
的内容。
如果有这样的模块或包覆盖了标准库的模块,解决办法就是把那个非标准的 io
模块或包重命名。