2012-02-23 122 views
0

我有一个文件夹blimp__init__.pymodels.pyviews.py蟒蛇2.7导入一个类从同一目录

当我从我使用from blimp.models import ..的文件夹外导入,但文件夹里面给出了一个导入错误,除非我用from models import ..

我在想这是为什么? 谢谢

回答

2

当你的文件夹内,你这样做:

from blimp.models import ... 

的Python试图找到blimp/blimp/models.py。所以这是逻辑有错误,我个人总是正确配置我的PYTHONPATH为了有通用的导入代码(没有特定的Python代码来操纵PYTHON PATH)。

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

add2virtualenv directory1 directory2 directory3 

之后,directory1 directory2和directory3在PYTHONPATH中可用。

1

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

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