我知道,我知道,这很脏。我想知道是否有可能劫持Python模块的__init__
模块以替换它自己。
我问这是因为我需要阻止django lib启动它的初始进程的某些部分,使其崩溃我们的配置。
是的,最好修复django lib并发回补丁。是的,我和作者有联系。但就目前而言,我需要快速解决。
答案 0 :(得分:4)
劫持导入过程的一种方法是在导入过程之前的某个时间模拟导入,在另一个要导入猴子补丁的模块之前导入。将您想要的任何内容插入到sys.modules
中,并将模块名称作为键,当需要导入原始模块时,Python将在sys.modules
中找到一个条目并将使用它。如果以某种神奇的方式完成导入,这可能无效。
另一方面,您可以随时复制原始项目并根据自己的喜好进行修补。
答案 1 :(得分:0)
您只需编辑__init__.py
文件即可。没有什么可以阻止你,如果你这样做,没有什么不好的事情会发生。