我知道,我知道,它很髒,一切。我想知道是否有可能劫持Python模塊的__init__
模塊,以便由您自己替換。如何在Python中修補__init__模塊?
我在問,因爲我需要阻止django lib啓動init進程的某些部分,使其與我們的配置崩潰。
是的,最好修復django lib併發回補丁。是的,我就此與作者保持聯繫。但現在,我需要一個快速修復。
我知道,我知道,它很髒,一切。我想知道是否有可能劫持Python模塊的__init__
模塊,以便由您自己替換。如何在Python中修補__init__模塊?
我在問,因爲我需要阻止django lib啓動init進程的某些部分,使其與我們的配置崩潰。
是的,最好修復django lib併發回補丁。是的,我就此與作者保持聯繫。但現在,我需要一個快速修復。
您可以編輯__init__.py
文件。沒有什麼能阻止你,如果你做對了,沒有什麼不好的事情會發生。
我正要評論這應該是一個答案。 +1 – 2011-02-02 17:13:40
如有疑問,請將其破解! – jathanism 2011-02-02 17:17:20
劫持導入過程的一種方法是在導入過程中有一段時間模擬導入過程,在另一個導入要導入猴子模塊之前的模塊中。插入任何你想要的模塊名稱作爲密鑰sys.modules
,當需要導入原始模塊時,Python會在sys.modules
中找到一個條目,並將使用該條目。如果導入是以某種神奇的方式完成的,這可能不起作用。
另一方面,您可以隨時複製原始項目並根據自己的喜好進行修補。
如何編輯「__init __。py」以符合您的喜好?這一切都只是純文本 – 2011-02-02 17:11:44