Python导入:AttributeError:' module'对象没有属性' test'

时间:2015-06-14 06:42:11

标签: python python-import

我认为这是一个愚蠢的问题,但我无法弄清楚为什么会得到以下内容

AttributeError: 'module' object has no attribute 'test'

运行 test3.py 时。

这是我的项目树:

.
├── __init__.py
├── test3.py
└── testdir
    ├── __init__.py
    └── test.py

我的 test3.py

#!/usr/bin/python                                                          

import testdir

if __name__ == "__main__":
    print(testdir.test.VAR)

我的 test.py

#!/usr/bin/python

import os

VAR=os.path.abspath(__file__)

我还尝试以这种方式导入 VAR

from testdir.test import VAR

编辑:现在这个工作 - 谢谢@ user2357112-但我仍然想知道如果可能的话,如果没有from ... import ...导入整个test.py文件。 :)

我尝试了import ..testdir进行相对导入,但我得到了SyntaxError

如果我尝试import testdir.test,我会得到NameError: name'test' is not defined

我怎么能导入这个文件?我有点困惑。

EDIT bis:

我道歉,当我尝试import testdir.test时,我也将print(testdir.test.VAR)修改为print(test.VAR)

这就是问题,我的不好。

with:

#!/usr/bin/python                                                          

import testdir.test

if __name__ == "__main__":
    print(testdir.test.VAR)

它完美无缺,但我导致testdir.test导致test单独存在(而不是testdir.test)。

很抱歉给您带来不便。 :S

3 个答案:

答案 0 :(得分:1)

尝试将from .test import VAR添加到testdir / init .py。然后test3.py中的import testdir print testdir.VAR可能会有效。我同意它更像是一种解决方法,而不是解决方案。

答案 1 :(得分:1)

要使用import语句添加整个文件,可以使用execfile

答案 2 :(得分:0)

我终于成功地以这种方式工作:

#!/usr/bin/python                                                          

import testdir.test

if __name__ == "__main__":
    print(testdir.test.VAR)

当我尝试使用print(testdir.test.VAR)时,我错误地将print(test.VAR)修改为import testdir.test。所以我有这个NameError。

我的坏。