模块在python3中没有属性错误

时间:2017-02-25 18:59:57

标签: python class

io.py

的内容
class IO:
    def __init__(self):
        self.ParsingFile = '../list'

    def Parser(self):
        f = open(ParsingFile, 'r')
        print(f.read())

main.py

的内容
import sys
sys.path.insert(0, "lib/")

try:
    import io
except Exception:
    print("Could not import one or more libraries.")
    exit(1)

print("Libraries imported")
_io_ = io.IO()

当我运行python3 main.py时,我收到以下错误:

Libraries imported
Traceback (most recent call last):
  File "main.py", line 11, in <module>
    _io_ = io.IO()
AttributeError: module 'io' has no attribute 'IO'

知道出了什么问题吗?

3 个答案:

答案 0 :(得分:4)

我的文件名为io。似乎已经存在一个名为io的包,这引起了混淆。

答案 1 :(得分:1)

您的包名称(io)与具有相同名称的Python库包冲突,因此您实际导入了系统包。

您可以打印io.__all__

进行检查

将io.py更改为其他内容可能是避免类似问题的最佳方法。否则,您可以使用绝对路径。

答案 2 :(得分:0)

from io import IO

在尝试从其他文件导入类时,这对我有用

这有更多信息:

Python module import - why are components only available when explicitly imported?