2015-04-07 4 views
2

Я хочу переопределить модуль существующего приложения 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 

Но я не уверен, куда поместить эти строки. Я попробовал его во всех файлах инициализации, но он не работает. Или есть другой способ?

+0

см. Http://stackoverflow.com/questions/3012473/how-do-i-override-a-python-import Возможно, это то, что вы ищете. – WWhisperer

+0

Да, вот откуда я получил идею sys.module. Но они переопределяют его только в одном файле. – linsenfips

ответ

Смежные вопросы