【发布时间】:2012-01-11 11:02:51
【问题描述】:
我知道imp 模块可以在 Python 3 中用于加载模块和包。
但是,我想在实际加载模块之前获取一些关于模块的信息(例如 __version__)。
我怎样才能得到这些信息?我在imp 中没有找到任何有用的方法。
现在,我无法比自己解析imp.find_module 找到的文件更好。
【问题讨论】:
-
导入模块,检查版本,如果发现是错误的,如何从
sys.modules再次删除?如果由于某种原因这不是一个选项,那么使用ast模块解析文件肯定比自己解析更好。 -
你为什么要这个?改变答案的原因。
-
我正在构建一个插件管理器,其中有一个 AddonManager 显示加载/可用的插件(就像在现代浏览器中一样)。每个插件都必须实现
__version__和__desc__,我想为“可用但未加载的插件”显示这些值。 -
@rds:然后我建议模块必须使用 Distribute,并使用 pip 安装。在这种情况下,您可以解析包 EGG-INFO 目录(请参阅答案)。
标签: python python-3.x