2014-05-09 49 views
4

我试图用下面给出的'RawIOBase'在python中创建一个类。为什么io模块对象没有属性'RawIOBase',尽管我使用python 2.6

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中开始支持。

回答

6

确保您没有其他名为io.py的文件。如果是这样,它可以屏蔽标准库中的io模块。您可以通过打印print(io)来检查将哪个文件作为io模块加载。它应该返回类似<module 'io' from '/usr/lib/python2.6/io.pyc'>

如果存在掩盖标准库模块的模块或包,则解决方案是重命名非标准io模块或包。

+0

非常感谢。还有一个名称为'io'的目录和目录中存在'__init__.py'文件。所以当我使用print(io)进行打印时,它将显示来自'/ projects/phx/tools/io/__ init __。pyc'>的 kadina

+1

哦相对进口的乐趣:-) – mgilson

相关问题