Python 2.7 импортировать класс из той же директории - PullRequest
0 голосов
/ 23 февраля 2012

У меня есть папка blimp с __init__.py, models.py и views.py

Когда я импортирую извне, я использую from blimp.models import .., но внутри папки это выдает ошибку импорта, если толькоЯ использую from models import ..

Мне было интересно, почему это так?Спасибо

Ответы [ 2 ]

2 голосов
/ 23 февраля 2012

Когда вы находитесь внутри папки и делаете:

from blimp.models import ...

Python, попробуйте найти blimp/blimp/models.py.Поэтому логично иметь ошибку:

Лично я всегда правильно настраиваю свой PYTHONPATH, чтобы иметь общий код импорта (без специального кода Python для манипулирования PATTHON PATH).Я использую virtualenv и virtualenvwrapper .Когда мой virtualenv включен:

add2virtualenv directory1 directory2 directory3

После этого в PYTHONPATH доступны каталоги directory2 и directory3.

1 голос
/ 23 февраля 2012

Потому что есть порядок, в котором Python ищет модели.Среди путей, которые ищет Python, находится ваш текущий каталог (но не каталог над ним).

Когда вы находитесь в папке blimp, blimp.models отсутствует, только модели.Решение состоит в том, чтобы всегда запускать ваш код из одного каталога (например, python -m blimp.stuff).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...