【发布时间】:2015-04-07 11:55:16
【问题描述】:
我想覆盖现有 Python 应用程序的模块。该应用程序由模块和子模块构成,我已经注册了一个扩展。在扩展中,我想提供一个覆盖原始模块(module.py)的模块(new_module.py)。因此,每当另一个模块导入它时,都会使用我的版本。
/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
但我不确定将这些行放在哪里。我在所有的 init 文件中都试过了,但它不起作用。还是有别的办法?
【问题讨论】:
-
看看stackoverflow.com/questions/3012473/…也许这就是你要找的。span>
-
是的,这就是我得到 sys.module 想法的地方。但他们只是在一个文件中覆盖它。
标签: python python-2.7