如何使用 importlib.import_module 在 Python 中导入模块
- 2025-04-16 08:56:00
- admin 原创
- 64
问题描述:
我尝试importlib.import_module
在 Python 2.7.2 中使用并遇到了奇怪的错误。
考虑以下目录结构:
一个
|
+-__init__.py
-b
|
+-__init__.py
-c.py
a/b/__init__.py
有以下代码:
导入导入库
mod = importlib.import_module(“c”)
(在实际代码中"c"
有一个名称。)
尝试import a.b
,会产生以下错误:
>>> 导入 ab
回溯(最近一次调用最后一次):
文件“”,第 1 行,位于
文件“a/b/__init__.py”,第 3 行,在
mod = importlib.import_module(“c”)
文件“/opt/Python-2.7.2/lib/python2.7/importlib/__init__.py”,第 37 行,位于 import_module 中
__import__(名称)
导入错误:没有名为 c 的模块
我错过了什么?
谢谢!
解决方案 1:
对于相对导入,您必须:
a) 使用相对名称
b) 明确提供锚点
importlib.import_module('.c', 'a.b')
当然,您也可以直接进行绝对导入:
importlib.import_module('a.b.c')
解决方案 2:
我认为最好使用,importlib.import_module('.c', __name__)
因为您不需要了解a
和b
。
我还想知道,如果必须使用importlib.import_module('a.b.c')
,为什么不直接使用import a.b.c
?
解决方案 3:
并且不要忘记__init__.py
为每个文件夹/子文件夹创建一个(即使它们是空的)
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD