2
我想覆蓋現有Python應用程序的模塊。該應用程序是在模塊和子模塊中構建的,並且我已經註冊了一個擴展。在擴展中,我想提供一個覆蓋原始模塊(module.py)的模塊(new_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
但我不知道在哪裏把這些行。我在所有的init文件中都試過了,但它不起作用。還是有另一種方式?
看看http://stackoverflow.com/questions/3012473/how-do-i-override-a-python-import 也許這是你在找什麼。 – WWhisperer
是的,這就是我從中獲得sys.module思想的地方。但他們只是在一個文件中覆蓋它。 – linsenfips