我的文件夹blimp
包含__init__.py
,models.py
和views.py
当我从文件夹外部导入时,我使用from blimp.models import ..
但在文件夹内部,除非我使用from models import ..
我想知道为什么会这样? 感谢
答案 0 :(得分:2)
当你进入文件夹时,你会这样做:
from blimp.models import ...
Python尝试查找blimp/blimp/models.py
。因此,出现错误是合乎逻辑的,
就个人而言,我总是正确配置我的PYTHONPATH以获得通用导入代码(没有特定的python代码来操作PYTHON PATH)。
为此,我使用virtualenv和virtualenvwrapper。当我的virtualenv启用时:
add2virtualenv directory1 directory2 directory3
之后,目录1 directory2和directory3在PYTHONPATH中可用。
答案 1 :(得分:1)
因为Python有一个搜索模型的顺序。在Python中寻找的路径是你当前的目录(但不是它上面的目录)。
当你进入blimp
文件夹时,没有blimp.models,只有模型。解决方案是始终从一个目录运行您的代码(例如python -m blimp.stuff
)。