gpt4 book ai didi

python - Python3.0动态导入模块?

转载 作者:行者123 更新时间:2023-11-28 20:54:28 25 4
gpt4 key购买 nike

我想动态导入模块列表。我在执行此操作时遇到问题。 Python 总是发出 ImportError 并告诉我我的模块不存在。

首先,我获取模块文件名列表并删除 ".py" 后缀,如下所示:

viable_plugins = filter(is_plugin, os.listdir(plugin_dir))
viable_plugins = map(lambda name: name[:-3], viable_plugins)

然后我 os.chdir 到插件目录并 map __import__ 整个东西,就像这样:

active_plugins = map(__import__, viable_plugins)

但是,当我将 active_plugins 变成一个列表并尝试访问其中的模块时,Python 会抛出一个错误,说它无法导入模块,因为它们似乎不存在。

我做错了什么?


编辑:通过简单地使用交互式解释器,执行 os.chdir__import__(modulefilename) 产生我所需要的。那么为什么上述方法不起作用呢?我是不是对 Python 的更多功能部分做错了什么?

最佳答案

它说它不能这样做,因为即使您将目录更改为模块所在的目录,该目录也不在您的导入路径中。

您需要做的是将该目录插入 sys.path,而不是更改到模块所在的目录。

import sys
sys.path.insert(0, directory_of_modules)
# do imports here.

关于python - Python3.0动态导入模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1551063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com