Я вижу вопрос, который я собираюсь задать, очень тривиальный, и его спросили и, следовательно, ответили многие. Я просмотрел решение, предоставленное для проблемы, однако я не вижу решения для работы в моем случае.Импорт модуля Python из разных папок
У меня есть следующая иерархия каталогов.
----a
-------__init__.py
--------------aa
------------------aa.py
------------------__init__.py
--------------bb
------------------bb.py
------------------__init__.py
-------a.py
Я хотел был бы сделать следующее.
- Чтобы импортировать bb.py и aa.py из файла a.py-- осуществляется с помощью __init__.py в каждой директории папки
- Чтобы импортировать bb.py из aa.py (Не работает)
- Чтобы импортировать a.py из aa.py (не работает)
глядя на многих решений я поместил файл __init__.py
внутри каждой директории папки.
я использовал:
import imp
foo = imp.load_source('module.name', 'path to the file')
Это работало, но так как путь должен быть жестко закодирован Я не уверен, если это будет жизнеспособным решением в моем случае
В настоящее время я делаю импортирует, добавив путь к каталогам sys. Я бы хотел, чтобы решение было более динамичным.
Иерархия папок моего проекта углубляется до 6-7 уровней поддиректорий и мне нужно решение импортировать модуль на уровне 1 от уровня 7.
Я буду рад, если кто-то может указать на что мне не хватает.
Вы, вероятно, хотите, чтобы назвать ваши файлы инициализации [ '__init__. py'] (https://docs.python.org/3/tutorial/modules.html#packages). – Evert
«Иерархия папок моего проекта проходит до 6-7 подкатегорий уровней». Упрощенное суждение, но это просто плохо; вы можете переосмыслить свою структуру. – Evert
Файлы инициализации названы правильно. Я не знаю, когда я набираю __ с init, __ автоматически удаляется. – Sam