Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 11, 2011 15:44:08

vaukalak
От:
Зарегистрирован: 2011-03-03
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Как мпортировать модуль из соседнего каталога

В общем есть каталог:

core/
application/
Application.py
events/
EventDispatcher.py

Запускаемый файл Application.py, как из него импортировать EventDispatcher.py?

Пробую так:

from .events import EventDispatcher;
выдает ValueError



Офлайн

#2 Окт. 11, 2011 15:54:29

pill
От:
Зарегистрирован: 2010-08-27
Сообщения: 223
Репутация: +  0  -
Профиль   Отправить e-mail  

Как мпортировать модуль из соседнего каталога

1:
core/
application/
Application.py
events/
__init__.py <<< пустой
EventDispatcher.py

import sys
sys.path.append('path/to/core/dir')
from events import EventDispathcher
2:
import sys
sys.append('path/to/events/dir')
import EventDispatcher
3:
import os
os.chdir('path/to/events/dir')
import EventDispather

http://docs.python.org/tutorial/modules.html#the-module-search-path



Отредактировано (Окт. 11, 2011 15:56:31)

Офлайн

#3 Окт. 11, 2011 17:06:04

МаксЩедров
От:
Зарегистрирован: 2011-10-11
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как мпортировать модуль из соседнего каталога

Если каталог core/ указан в переменной PYTHONPATH, то

import events.EventDispatcher



Отредактировано (Окт. 11, 2011 17:06:43)

Офлайн

#4 Окт. 11, 2011 22:00:04

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

Как мпортировать модуль из соседнего каталога

1. две точки перед events (from ..events import EventDispatcher)
2. Во всех директориях (core включительно) должны быть файлы __init__.py
3. Положи top-level файл рядом с директорией core (он будет содержать строчку “import core.application.Application”) и запускай его:

project/
run.py
core/
__init__.py
application/
__init__.py
Application.py
events/
__init__.py
EventDispatcher.py



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version