2011-02-02 86 views
5

我知道,我知道,它很髒,一切。我想知道是否有可能劫持Python模塊的__init__模塊,以便由您自己替換。如何在Python中修補__init__模塊?

我在問,因爲我需要阻止django lib啓動init進程的某些部分,使其與我們的配置崩潰。

是的,最好修復django lib併發回補丁。是的,我就此與作者保持聯繫。但現在,我需要一個快速修復。

+4

如何編輯「__init __。py」以符合您的喜好?這一切都只是純文本 – 2011-02-02 17:11:44

回答

0

您可以編輯__init__.py文件。沒有什麼能阻止你,如果你做對了,沒有什麼不好的事情會發生。

+0

我正要評論這應該是一個答案。 +1 – 2011-02-02 17:13:40

+0

如有疑問,請將其破解! – jathanism 2011-02-02 17:17:20

4

劫持導入過程的一種方法是在導入過程中有一段時間模擬導入過程,在另一個導入要導入猴子模塊之前的模塊中。插入任何你想要的模塊名稱作爲密鑰sys.modules,當需要導入原始模塊時,Python會在sys.modules中找到一個條目,並將使用該條目。如果導入是以某種神奇的方式完成的,這可能不起作用。

另一方面,您可以隨時複製原始項目並根據自己的喜好進行修補。