我认为这是一个愚蠢的问题,但我无法弄清楚为什么会得到以下内容
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
答案 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。
我的坏。