我有一个具有这种结构的项目(仅显示受影响的项目):
main.py # starting script
/app
|__init__.py
|/exceptions
| __init__.py # content: from .ex400 import *
| base.py
| ex400.py # content: some classes extending classes from base.py
|/extend
| __init__.py # empty
| module.py
从 /app/extend/module.py
,我尝试从 /app/exceptions/ex400.py
导入类。我从 main 导入了 module.py
模块.py
# I added this to check the path, output is below
import sys
print 'Working directory =>', sys.path
from app.exceptions.ex400 import SomeClass, MoreClass
# ... some code here ofcourse
在运行时,我得到了一个ImportError
。
Working directory => ['/prj/myproject', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']
...
File "/prj/myproject/app/extend/module.py", line 5, in <module>
from app.exceptions.ex400 import SomeClass, MoreClass
ImportError: No module named exceptions.ex400
我是不是漏掉了什么?
最佳答案
是的,你错过了一些东西。它只是一些小东西,但无论如何用 Python 导入是一个痛苦的事情。例如,您的 app 文件夹中没有 __init__.py
。那应该可以解决您的问题。顺便说一句,不要对命名空间等感到困惑。我只是将__init__.py
留在您的exceptions 文件夹中为空。
干杯
关于python - 无法导入模块python ImportError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36373588/