python 2.7从同一目录导入一个类

时间:2012-02-23 12:58:55

标签: python python-2.7

我的文件夹blimp包含__init__.pymodels.pyviews.py

当我从文件夹外部导入时,我使用from blimp.models import ..但在文件夹内部,除非我使用from models import ..

,否则会出现导入错误

我想知道为什么会这样? 感谢

2 个答案:

答案 0 :(得分:2)

当你进入文件夹时,你会这样做:

from blimp.models import ...

Python尝试查找blimp/blimp/models.py。因此,出现错误是合乎逻辑的,

就个人而言,我总是正确配置我的PYTHONPATH以获得通用导入代码(没有特定的python代码来操作PYTHON PATH)。

为此,我使用virtualenvvirtualenvwrapper。当我的virtualenv启用时:

add2virtualenv directory1 directory2 directory3

之后,目录1 directory2和directory3在PYTHONPATH中可用。

答案 1 :(得分:1)

因为Python有一个搜索模型的顺序。在Python中寻找的路径是你当前的目录(但不是它上面的目录)。

当你进入blimp文件夹时,没有blimp.models,只有模型。解决方案是始终从一个目录运行您的代码(例如python -m blimp.stuff)。