SO 中有许多问题与此问题略有不同。我看到的答案都没有解决我的问题,所以我要问一个新问题。
我有这个文件夹结构:
/myapp/
\__init__.py
modu1.py
modu2.py
__init__.py is empty
modu1.py
class TestMod1Class():
def msg(self):
print "Hello World!"
modu2.py
import myapp.modu1
obj = myapp.modu1.TestMod1Class()
obj.msg()
如果我从目录/myapp/运行 python modu2.py 我得到:
Traceback (most recent call last):
File "modu2.py", line 1, in <module>
import myapp.modu1
ImportError: No module named myapp.modu1
我做错了什么?我读过 the docs , 仍然无法理解这一点。
请您参考如下方法:
通过位于 myapp 文件夹中,您已经位于 myapp 模块中。因此,您不需要使用 import myapp.modu1 语法,而是应该使用 import modu1。
例如:
import modu1
obj = modu1.TestMod1Class()
obj.msg() # output: Hello World!
注意:我在 Python 3 中进行了测试,因为我的机器上没有 2,但它应该是相同的(我确实编辑了 modu1 以使用新的 print 语法)。
