【发布时间】:2014-09-17 11:01:17
【问题描述】:
我知道 Python 导入是一个常年令人头疼的问题,但我不明白为什么要打破它:
我的文件结构如下:
webapp/
README.md
...
webapp/
__init__.py
...
tests/
__init__.py
test_integration.py
webapp/init.py 正在初始化一个 Flask 项目,而 webapp/tests/test_integration.py 正在尝试测试主页。
当我 cd 进入 webapp/webapp 并运行 python tests/test_integration.py(包括行 import webapp)时,我收到错误 ImportError: No module named webapp。我尝试cd 向上一个目录,进入上层webapp,以及向下进入tests,但同样的处理。我尝试将内部webapp目录的绝对路径添加到PYTHONPATH,但无济于事。
这很奇怪,因为我在另一个项目中使用了类似的结构,而且它似乎工作正常。
另外,如果我将test_integration.py 一直向上移动到外部webapp 目录中,它运行得很好。为什么测试不能从文件树内部的任何其他位置import webapp?
有什么见解吗?谢谢!~
【问题讨论】:
-
为了完全避免这个问题,我通常将库安装到虚拟环境中,这样我就可以从任何地方导入。