Форум сайта python.su
вот структура каталогов/файлов :
myFunc2\__init__.pyесли я в prj0.py прописываю:
myFunc2\testmod2.py
prj\myFunc1\__init__.py
prj\myFunc1\testmod1.py
prj\myFunc1\testmod1.pyc
prj\__init__.py
prj\prj0.py
__init__.py
from myFunc1.testmod1 import * # - тут все ок!
#а если так:
from ..myFunc2.testmod2 import *
Traceback (most recent call last):- почему? зачто? ведь там все пакеты, везде есть файл __init__.py
File “c:\long path\prj\prj0.py”, line 2, in <module>
from ..myFunc2.testmod2 import *
ValueError: Attempted relative import in non-package
Отредактировано (Июнь 13, 2010 16:36:52)
Офлайн
ЗЫ:
файл __init__.py везде пустой
в testmod1.py и testmod2.py по одной функции:
def testfnc1():
print "call testfnc1"
def testfnc2():
print "call testfnc2"
Офлайн
эти 2 точки ты сам придумал или подсказал кто?)
когда делается from myFunc1.testmod1 import * мы импортруем все из модуля testmod1 пакета myFunc1
Отредактировано (Июнь 13, 2010 17:06:14)
Офлайн
когда делается from myFunc1.testmod1 import * мы импортруем все из модуля testmod1 пакета myFunc1да, совершенно верно!, импортируется все из файла “myFunc1/testmod1.py” - именно это и требуется,
эти 2 точки ты сам придумал или подсказал кто?)про эти 2 точки я подсмотрел тут
from .myFunc2.testmod2 import *
from ..myFunc2.testmod2 import *
from ...myFunc2.testmod2 import *
Отредактировано (Июнь 13, 2010 17:44:22)
Офлайн
внезапно, вы правы. Прошу прощения :)
Ниразу не требовалось вызывать из внутреннего модуля модуль выше…
Наверно это связано с тем, что вы запускаете proj0.py как программу.
Отредактировано (Июнь 13, 2010 17:49:55)
Офлайн
ошибка подкралась тихо, неожиданно и незаметно,
ыы, а я с питоно меньше 5 дней борюсь и тут уже такое и срочно и надо ))
Отредактировано (Июнь 13, 2010 17:54:08)
Офлайн
Наверно это связано с тем, что вы запускаете proj0.py как программу.оп, а как тогда надо?
Офлайн
ау, не забывайте про меня,
извеняюсь за след текст,: но мне срочно надо освоить питон в кратчайшие сроки, и нет времени зацикливаться на таких мелочах, ведь так и за неделю никуда продвинусь/ничего не сделаю,
спасите/помогите, бросьте мне спасательный круг, веревку или наковальню, хоть что нибудь но надо решить
пс: напутствие и откровение1: уже нет никаких сил, хочется когото придушить/порвать/порезать/и конечно же расчленить, и сегдня я думаю это будет клвиатура, но завтра может оказаться кто то другой, спешите, спешите…
Офлайн
из другого модуля попробуй вызвать.
Вообще, по мне так модули нижних уровней не должны ничего знать о модулях верхних.
Офлайн
Может это поможет:
http://python.su/forum/viewtopic.php?id=5817
Честно говоря, я не стал делать так, как мне советовал Андрей Светлов. Как-то оно само собой отпало из-за того, что я увлёкся играми с утиной типизацией… Но надо будет это осилить, написать скрипты. Может даже в этой теме.
Офлайн