Напишите хук импорта PEP-302, который знает, какой модуль импортирует какой

Допустим, у меня есть модули foo.py а также bar.py и оба имеют import baz Заявление в своем коде.

Я хочу написать хук импорта, который я могу вставить в sys.meta_path что знает ли baz импортируется из foo или из bar,

Причина, по которой я хочу это сделать, заключается в том, что я хочу, чтобы мое приложение могло загружать плагины и сохранять их зависимости изолированными, как я мог бы использовать отдельные ClassLoader экземпляры в Java. Таким образом, плагин foo и плагин bar сможет связывать разные версии библиотеки baz без конфликта Я хочу достичь этого путем изменения механизма импорта для создания отдельных модулей для import baz заявление в зависимости от того, откуда это заявление.

Если у кого-то есть лучший способ сделать это, не стесняйтесь предлагать это в своем ответе.

0 ответов

Другие вопросы по тегам