![](/img/trans.png)
[英]Why does import <package> not work ,but import <package.submodule> work?
[英]Why does this import work?
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
作为测试方法是否重要?
此import
从site_packages
目录而不是您的模块import
全局flask
。
如果你将卸载flask,那么你将得到一个ImportError
异常。
有两种可能性。 第一个是烧瓶项目根目录在PYTHONPATH
。 如果是这种情况,那么因为在flask目录中有一个__init__.py
文件,它就可以导入整个flask
模块。 第二种(更可能的)可能性是Python实际上是从您的site_packages目录导入flask
模块,您可能使用像pip install flask
这样的东西安装了该模块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.