Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 3, 2014 23:25:37

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

Цепь импортирования

Привет!
У меня есть маленький тестовый проектик, чтобы понять, как импортируются в Питоне (3.4.1 x64 under Win7) файлы из пакета.

Итак, main.py:

from my_lib import a
va=a.TClassA()

В подапке my_lib есть
__init__.py (пусто),
a.py:
from b import TClassB
class TClassA(TClassB):
  def __init__(self):
    super().__init__()
    print ('A created')

и b.py:

class TClassB:
  def __init__(self):
    print ('B created')

Далее, при попытке выполнить main.py получаю:

Traceback (most recent call last):
File “D:\work\test\main.py”, line 1, in <module>
from my_lib import a
File “D:\work\test\my_lib\a.py”, line 1, in <module>
from b import TClassB
ImportError: No module named ‘b’

Что за ерунда? Почему a.py не видит b.py, ведь они в одной папке?

Офлайн

#2 Июнь 4, 2014 05:45:45

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Цепь импортирования

icegood
from b import TClassB
from .b import TClassB
Объяснить корректно не смогу, ибо живу не на Python3.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Отредактировано JOHN_16 (Июнь 4, 2014 06:05:51)

Офлайн

#3 Июнь 4, 2014 08:24:46

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

Цепь импортирования

JOHN_16
Объяснить корректно не смогу, ибо живу не на Python3.
Да, работает! А теперь я от других просто требую объяснения матчасти

Офлайн

#4 Июнь 4, 2014 10:49:32

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Цепь импортирования

icegood
А теперь я от других просто требую объяснения матчасти
Коротко: пакет - всё, директория - ничто!

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version