python - 如何使用 importlib.import_module 在 Python 中导入模块

标签 python import module python-importlib

我正在尝试使用 importlib.import_module在 Python 2.7.2 中遇到奇怪的错误。

考虑以下目录结构:

    a
    |
    + - __init__.py
      - b
        |
        + - __init__.py
          - c.py

a/b/__init__.py 有如下代码:

    import importlib

    mod = importlib.import_module("c")

(在实际代码中“c”有名字。)

尝试import a.b,产生以下错误:

    >>> import a.b
    Traceback (most recent call last):
      File "", line 1, in 
      File "a/b/__init__.py", line 3, in 
        mod = importlib.import_module("c")
      File "/opt/Python-2.7.2/lib/python2.7/importlib/__init__.py", line 37, in   import_module
        __import__(name)
    ImportError: No module named c

我错过了什么?

谢谢!

最佳答案

对于相对导入,您必须:

  • a) 使用相对名称
  • b) 明确提供 anchor

    importlib.import_module('.c', 'a.b')
    

当然,你也可以只做绝对导入:

importlib.import_module('a.b.c')

关于python - 如何使用 importlib.import_module 在 Python 中导入模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10675054/

相关文章:

python - 是否可以在没有循环或附加模块的情况下从 BeautifulSoup 获取以下信息?

r - 如何在R中使用Matlab数据?

eclipse - shiro-quick-start : imports cannot be resolved (by Eclipse) 的 Grails 问题

c++ - 无法导入/配置 Qt 项目

javascript - NodeJS 在同一文件夹中找不到模块

python - 解决 CSV 中无效行的问题

python - odoo 条件下的电子邮件模板

python - 如何编写 pd.dataframe 方法?

python - Python包的本地集合: best way to import them?

php - 用于 PHP 开发的有用 Apache 模块列表