Python import : AttributeError: 'module' object has no attribute 'test'
Python import : AttributeError: 'module' object has no attribute 'test'
我认为这是个愚蠢的问题,但我不明白为什么我会得到以下结果
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——但我仍然想知道如何在没有 [=16 的情况下导入整个 test.py 文件=] 如果可能的话。 :)
我尝试了 import ..testdir
进行相对导入,但我得到了 SyntaxError
。
如果我尝试 import testdir.test
,我会得到一个 NameError: name'test' is not defined
。
如何导入此文件?我有点困惑。
编辑之二:
抱歉,我试import testdir.test
的时候也把print(testdir.test.VAR)
改成了print(test.VAR)
。
这就是问题所在,我的错。
与 :
#!/usr/bin/python
import testdir.test
if __name__ == "__main__":
print(testdir.test.VAR)
它工作得很好,我虽然导入 testdir.test
使 test
单独存在(而不是 testdir.test
)在范围内。
对于给您带来的不便,我们深表歉意。 :S
尝试将 from .test import VAR
添加到 testdir/init.py。然后 import testdir
print testdir.VAR
in test3.py 可能会起作用。我同意这更像是一种解决方法而不是解决方案。
要添加整个文件而不使用 import 语句,您可以使用 execfile
我终于成功地让它以这种方式工作了:
#!/usr/bin/python
import testdir.test
if __name__ == "__main__":
print(testdir.test.VAR)
我在尝试 import testdir.test
时错误地将 print(testdir.test.VAR)
修改为 print(test.VAR)
。所以我有这个 NameError。
我的错。
我认为这是个愚蠢的问题,但我不明白为什么我会得到以下结果
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——但我仍然想知道如何在没有 [=16 的情况下导入整个 test.py 文件=] 如果可能的话。 :)
我尝试了 import ..testdir
进行相对导入,但我得到了 SyntaxError
。
如果我尝试 import testdir.test
,我会得到一个 NameError: name'test' is not defined
。
如何导入此文件?我有点困惑。
编辑之二:
抱歉,我试import testdir.test
的时候也把print(testdir.test.VAR)
改成了print(test.VAR)
。
这就是问题所在,我的错。
与 :
#!/usr/bin/python
import testdir.test
if __name__ == "__main__":
print(testdir.test.VAR)
它工作得很好,我虽然导入 testdir.test
使 test
单独存在(而不是 testdir.test
)在范围内。
对于给您带来的不便,我们深表歉意。 :S
尝试将 from .test import VAR
添加到 testdir/init.py。然后 import testdir
print testdir.VAR
in test3.py 可能会起作用。我同意这更像是一种解决方法而不是解决方案。
要添加整个文件而不使用 import 语句,您可以使用 execfile
我终于成功地让它以这种方式工作了:
#!/usr/bin/python
import testdir.test
if __name__ == "__main__":
print(testdir.test.VAR)
我在尝试 import testdir.test
时错误地将 print(testdir.test.VAR)
修改为 print(test.VAR)
。所以我有这个 NameError。
我的错。