我在python中有一个简单的应用程序可以用于视觉效果(pygame)。 我想在此应用程序中加载我的自定义模块。每个模块都有自定义vfx。
应用程序结构:
app:
|
-main.py
-config.py
-modules
|
-01
|
-module.py
-assets
-02
|
-module.py
-assets
-XX
|
-module.py
-assets
在module.py中,我有:
#import libs
def loadModules():
dir = []
list = os.listdir("modules")
for d in list:
path = os.path.abspath("modules") + os.sep + d
if os.path.isdir(path) and os.path.exists(path + os.sep + "module.py"):
dir.append(path + os.sep + "module.py")
return dir
#init pygame & create scene
i = 0
while true
#scene()
sys.path.append(loadModules()[0])
mod = importlib.import_module("module", __name__)
mod.draw(scene)
#print(plugin)
sys.path.remove(plugin)
if(i > 10):
sys.path.append(loadPlugins()[1])
mod = importlib.import_module("module", __name__)
mod.draw(scene)
#print(plugin)
sys.path.remove(plugin)
i += 1
模块中的每个module.py我都有方法
draw()
创建视觉效果
如何加载动态的几个模块巫婆标准同名方法draw()? 在此解决方案中,仅加载第一个模块,不加载下一个目录02中的下一个模块。
答案 0 :(得分:1)
# General rule for Folder1
RewriteCond %{REQUEST_URI} !^/Folder1/file(2|8)$
RewriteRule ...
# Rule for Folder1/file2 and Folder1/file8
RewriteCond %{REQUEST_URI} ^/Folder1/file(2|8)$
RewriteRule ...
将始终返回loadModules()[0]
的第一项,始终为dir
。
与其执行01
而是遍历while True
中的所有条目:
loadModules()
答案 1 :(得分:0)
好的,但是现在只加载一个模块,而不是全部。 我究竟做错了什么? Check this -> screen
编辑:
我找到了不赞成使用的解决方案:
for dir in loadModules():
print(dir)
imp.load_source('module', dir)
import module
module.draw()