我想創建一個插件系統,我有一個將所有模塊導入到數組中的函數。插件的多個導入相同的文件名
佈局:
PLUGINSDIR/
PLUGINSDIR /聊天
PLUGINSDIR /聊天/ main.py
這是查找並導入功能插件:
if os.path.exists(pluginsDir):
for path, dirArray, fileArray in os.walk(pluginsDir):
for fileName in fileArray:
if fileName == "main.py":
sys.path.append(path)
try:
plugins.append(__import__("main"))
except:
print 'Could not import plugin, "'+path+'": plugin contains errors or is not a real plugin.'
這很好,如果我只有一個插件,但是當我有多個插件時,它會不斷導入它檢測到的第一個插件。插件的
佈局:
PLUGINSDIR/
PLUGINSDIR /聊天
PLUGINSDIR /聊天/ main.py
PLUGINSDIR /建
PLUGINSDIR /編譯/主.py
我試過在我的try語句後添加sys.path.remove(path)
,但是它並沒有在我已經導入模塊後刪除路徑。
我能做些什麼來正確導入我的插件?
那是因爲我修改我的代碼更可讀的就在這裏,但我最終帶走了一些縮進:
有了Python包,在你的腳本中的循環,可以方便地與實施。 – MetaDark 2010-12-22 16:51:35