我知道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
的任何原因吗?
有什么见解?谢谢!〜
答案 0 :(得分:0)
“我尝试将内部webapp目录的绝对路径添加到PYTHONPATH,但没有用。”
您需要将外部 webapp
目录添加到PYTHONPATH
。
export PYTHONPATH=/path/to/webapp:$PYTHONPATH
然后您的内部webapp
目录将可见,您可以将其导入。