当前位置: 首页 > 面试题库 >

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

郎雅昶
2023-03-14
问题内容

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

考虑以下目录结构:

    一种
    |
    +-__init__.py
      -b
        |
        +-__init__.py
          -c.py

a/b/__init__.py 具有以下代码:

    导入importlib

    mod = importlib.import_module(“ c”)

(在真实代码中"c"有一个名称。)

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

    >>>导入ab
    追溯(最近一次通话):
      文件“”,第1行,位于 
      在第3行的文件“ a / b / __ init__.py”中 
        mod = importlib.import_module(“ c”)
      import_module中的文件“ /opt/Python-2.7.2/lib/python2.7/importlib/__init__.py”,第37行
        __import __(名称)
    ImportError:没有名为c的模块

我想念什么?

谢谢!


问题答案:

对于相对进口,您必须:

  • a)使用相对名称
  • b)明确提供锚点
    importlib.import_module('.c', 'a.b')
    

当然,您也可以只执行绝对导入:

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


 类似资料:
  • 我在让sikuli python单元测试工作时遇到了麻烦,希望能得到一些帮助。我在网上到处搜索,但是没有任何有用的东西。我的python知识非常有限,我想这没有什么帮助... 我用的是win7 32,sikuli 1.0 rc3 (r905),python 2.7.3 我正在尝试通过python运行sikuli单元测试(不使用命令行,只是作为一个python脚本来运行python gui)。除了别

  • 我想在任何目录的任何脚本中导入自定义编写的函数,就像在任何脚本中导入请求模块一样。我正在运行Ubuntu和Python 3.9 编辑:我按照本教程完成了我的要求-https://packaging.python.org/tutorials/packaging-projects/

  • 我是新的Python,我已经安装在C:\ INFO2013-07-08 08:15:47,197server.py:593]默认:"GET/HTTP/1.1"500-INFO2013-07-08 08:28:22,289api_server.py:509]应用所有挂起的事务并保存数据存储INFO2013-07-08 08:28:22,289api_server.py:512]保存搜索索引2013-

  • 问题内容: 我已尝试找到有关最佳使用还是全面的指南。我刚开始使用Python,并且正在尝试着眼于最佳实践。 基本上,我希望有人能分享他们的经验,其他开发人员有什么喜好,以及避免遇到麻烦的最佳方法是什么? 问题答案: 和之间的区别主要是主观的。选择最喜欢的一个,并在使用中保持一致。这里有一些要点可以帮助你做出决定。 优点: - 减少维护你的import报表。无需添加任何其他导入即可开始使用模块中的另

  • 问题内容: 在Python中使用相对导入有一个缺点,您将无法再独立运行模块,因为您将得到一个异常: 为了能够执行以下所有操作,我应该如何修改示例代码:和 我正在寻找适用于python 2.6+(包括3.x)的解决方案。 问题答案: 首先,我假设您意识到您编写的内容将导致循环导入问题,因为foo导入bar反之亦然;尝试添加 to test.py,您将看到它失败。必须更改示例才能正常工作。 因此,您要

  • 问题内容: 我正在尝试使用该软件包在R中导入python模块。该模块可以在这里找到。我克隆了存储库并运行成功。如果打开python shell,则可以导入。但是,当我尝试将其导入RStudio时,出现以下错误: 我在macOS Sierra版本10.12.6上并通过Anaconda安装了python 3.6。我也尝试过给出python的路径为: 当我从终端运行python时,我得到: 不确定pyt