Я хочу переопределить модуль существующего приложения Python. Приложение структурировано в модулях и подмодулях, и я зарегистрировал расширение. Внутри расширения я хочу предоставить модуль (new_module.py), который переопределяет исходный модуль (module.py). Поэтому, когда другой модуль импортирует его, моя версия используется.Переопределить модуль Python
/application
__init__.py
folder_a
folder_b
__init__.py
folder_b_a
__init__.py
module.py
/extension
__init__.py
new_module.py
Я предполагаю, что это может быть достигнуто путем установки его в модуле Sys, например:
import extension.new_module
sys.modules["application.folder_b.folder_b_a.module"] = extension.new_module
Но я не уверен, куда поместить эти строки. Я попробовал его во всех файлах инициализации, но он не работает. Или есть другой способ?
см. Http://stackoverflow.com/questions/3012473/how-do-i-override-a-python-import Возможно, это то, что вы ищете. – WWhisperer
Да, вот откуда я получил идею sys.module. Но они переопределяют его только в одном файле. – linsenfips