2012-02-23 3 views
0

У меня есть папка blimp с __init__.py, models.py и views.pyпитона 2,7 импортировать класс из того же каталога

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

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

ответ

2

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

from blimp.models import ... 

Python попытаться найти blimp/blimp/models.py. Так что логично иметь ошибку,

Лично я всегда правильно настраивал свой PYTHONPATH, чтобы иметь общий код импорта (никакого специального кода на Python для управления PYTHON PATH).

Для этого я использую virtualenv и virtualenvwrapper. Когда мой virtualenv это позволит:

add2virtualenv directory1 directory2 directory3 

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

1

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

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

Смежные вопросы