我的Python應用程序是這樣構建的,即某些功能可用作插件。目前插件體系結構非常簡單:我有一個包含一些python模塊的插件文件夾/包。我加載相關插件如下:py2exe中未編譯的python插件的動態加載編譯代碼
plugin_name = blablabla
try:
module = __import__(plugin_name, fromlist='do_something')
except ImportError:
#some error handling ...
,然後執行:
try:
loans = module.do_something(id_t, pin_t)
except xxx:
# error handling
我編譯應用程序到Windows二進制使用py2exe。 這工作正常,除了所有插件(並且必須)包含在二進制文件中的事實。這不是很實用,因爲對於每個新插件,我必須重新編譯併發布我的應用程序的新版本。如果新的插件(即python文件)可以被複制到某個應用程序插件文件夾中,並且文件代碼中的Python代碼可以被我的應用程序即時解釋,那將會更好。
這樣做的最佳方法是什麼?
(我雖然讀選定的插件文件的每一行,並應用exec
statement它。但有可能是更好的方式...)
感謝您的回答。但是這不需要有人在他的電腦上安裝python嗎? (我提出的解決方案將需要現在我想到的) – Rabarberski 2010-07-16 15:11:23
你說得對,應用程序和外部插件應該是相同的python安裝。我同意這很煩人。 – 2010-07-20 16:50:57