为什么在使用Python 2.6时io模块对象没有属性'RawIOBase

4 投票
1 回答
1824 浏览
提问于 2025-04-18 06:02

我在尝试用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 模块或包重命名。

撰写回答