Хочу странного, может кто знает..
есть несколько "одинаковых" директорий, которые генерит внешняя тулза.
В каждой директории есть питоновский пакет с кучей модулей. Получается что то подобное:
l1
client
rest.,py
...
l2
client
rest.py
...
l3
client
rest.py
...
В самих модулях используется абсолютные импорты, то бишь:
import client
или
from client import xxx
Мне сначала надо было использовать при запуске моего скрипта ровно один клиент, поэтому я тупо добавлял в sys.path путь до нужной папки и потом делал
import client
и у меня всё работало
А теперь мне надо несколько `client`ов импортить в один запуск скрипта.. И хз как это сделать.
Я пытался делать импорт клиента через importlib и потом его удаление, это даже сначала работало. А потом оказалось что эти `client`ы используют другие модули с тем же именем, но с разной реализацией.
То есть типа такого
from client import rest
и вот этот rest в разных client разный. Когда удаляю client,
client.rest не удаляется и когда начинаю использовать другой client, то получаются страшные эксепшены. Можно конечно попытаться удалять
client.rest и другие подобные модули, но это прям как то совсем не комильфо..
Можно эту проблему без хаков решить? Namespacы или еще что нибудь подобное?
Создать пакет на верхнем уровне аля l1.client не получается ибо в самом client используется импорт
client.xxx и этот модуль уже не виден