MiK
Июль 13, 2015 13:10:26
Не могу разобраться как работает.
есть каталог:
каталог
__init__.py
файл1.py
файл2.py
файл1:
from . import файл2
имя_файла = "это файл1"
def напечатать_имя_файла():
print(имя_файла)
Получаю ошибку: “SystemError: Parent module '' not loaded, cannot perform relative import”
ПС: питон3
WoMax
Июль 13, 2015 14:15:05
MiK
Июль 13, 2015 14:30:05
Я это тоже видел, но ничего не понял.
Поидее, он должен искать относительно файла который я запустил лично. Но он говорит, что главный модуль не загружен, что-ли… Как ни пробую, всё та же самая ошибка.
MiK
Июль 13, 2015 15:05:38
Вот из книги Лутца:
Инструкция from . import A, например, ограничится поиском модуля в ката-
логе, содержащем файл, где находится эта инструкция.
То есть всё должно работать верно. Или я чего-то не понимаю?
4kpt_III
Июль 13, 2015 16:41:31
MiK
Июль 13, 2015 17:26:44
4kpt_III
Ну это-же по абсолютному…
Нужет тот синтаксис, что в шапке.
4kpt_III
Июль 13, 2015 17:41:03
MiK
Нужет тот синтаксис, что в шапке.
Вам нужно импортировать или синтаксис?
Или ехать, или ?
MiK
Июль 13, 2015 17:52:33
4kpt_III
Надо импортировать тем синтаксисом, просто чтобы разобраться в механизме. Заглянул, в пятое издание Лутца, но там вроде те же самые примеры. Ничего не могу понять. Может баг какой?
WoMax
Июль 13, 2015 18:49:40
https://docs.python.org/3/tutorial/modules.html#intra-package-referencesNote that relative imports are based on the name of the current module. Since the name of the main module is always “__main__”, modules intended for use as the main module of a Python application must always use absolute imports.
Если будешь запускать файл как main, то не будет работать.
MiK
Июль 13, 2015 19:23:43
Да, всё получилось, из шела, спасибо. Хотя вроде пробовал не из мэйна, а через другой файл, та же ошибка была. Наверно где-то не разобрался ещё.