flask
(https://github.com/mitsuhiko/flask)项目(简化)的根文件夹如下所示:
flask/
__init__.py
... some more files ...
tests/
test_basic.py
... some more files ...
test_basic.py
中的代码:
import flask
# some more code ...
此导入如何成功,因为flask
包不是文件树中test_basic.py
的兄弟? Python如何知道在哪里找到flask
?
我 希望看到from .. import flask
。但事实并非如此。为什么这样做?项目使用py.test
作为测试权限是否重要?
答案 0 :(得分:6)
此import
从flask
目录导入全局site_packages
,而不是您的模块。
如果您要卸载flask,那么您将获得ImportError
例外。
答案 1 :(得分:4)
有两种可能性。第一个是烧瓶项目根目录在PYTHONPATH
。如果是这种情况,那么因为在flask目录中有一个__init__.py
文件,它可以导入整个flask
模块。
第二种(更有可能)可能性是Python实际上从您的site_packages目录导入了flask
模块,您可能使用pip install flask
之类的东西安装了该模块。