y-s*_*een 5 python python-import python-3.x
这是设置:
\n\n program [root]\n \xe2\x94\x9c\xe2\x94\x80 main.py\n \xe2\x94\x9c\xe2\x94\x80 utils\n | |\n | \xe2\x94\x94\xe2\x94\x80 util1.py\n \xe2\x94\x94\xe2\x94\x80 plugins\n |\n \xe2\x94\x94\xe2\x94\x80 plugin1.py\n
Run Code Online (Sandbox Code Playgroud)\n\n现在我想动态加载所有插件,使用pkgutil.iter_modules()
,效果很好。直到我放入from ..utils import util1
plugin1。然后我得到
ValueError: attempted relative import beyond top-level package\n
Run Code Online (Sandbox Code Playgroud)\n\n我尝试了两件事。首先,我用了importer.find_module().load_module()
这样使用:
for importer, module_name, ispkg in pkgutil.iter_modules(plugins.__path__):\n importer.find_module(module_name).load_module(module_name)\n
Run Code Online (Sandbox Code Playgroud)\n\n由于__package__
plugin1中为空,我也尝试过importlib.import_module()
这样:
module = importlib.import_module(package + "." + module_name, package=package)\n
Run Code Online (Sandbox Code Playgroud)\n\n以package
as 开头"plugins"
并将每个子文件夹添加plugins
到字符串中,并用 a 分隔.
我有什么想法可以让这项工作成功吗?
\n 归档时间: |
|
查看次数: |
245 次 |
最近记录: |