Можно ли импортировать модуль того же пакета с псевдонимом, используя относительный импорт?python: псевдоним для относительного импорта
Скажем, у меня есть следующая структура пакета:
lib/
foobar/
__init__.py
foo.py
bar.py
И в foo.py, я хотел бы использовать что-то из bar.py, но я хотел бы использовать его в качестве «бар. my_function ", поэтому вместо from .bar import my_function
я пробовал import .bar as bar
и import .bar
, оба из которых не работают (исключение исключений синтаксиса). Я пробовал как pythhon2.7, так и python3.4 (последняя - моя целевая версия).
Однако, что работает, и что я сейчас использую, это import foobar.bar as bar
, то есть абсолютный импорт вместо относительного. Это решение ОК, учитывая, что я не ожидаю, что имя пакета изменится (и даже если это произойдет, в коде немного изменить), но было бы неплохо, если бы я смог добиться этого, используя относительный импорт!
Резюме:
#import .bar as bar # why not?!?
#import .bar # shot in the dark
import foobar.bar as bar # current solution
Конечно, должно было осознать это сам! * facepalm * Но хорошо, задним числом легче, чем предвидение. Спасибо за Ваш ответ! – flotzilla