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

在嵌套包中导入模块

张心水
2023-03-14
问题内容

这是一个python新手问题:

我有以下目录结构:

test
 -- test_file.py
a
 -- b
   -- module.py

其中testab是文件夹。两者testa处于同一级别。

module.py有一个名为的类shape,我想在test_file.py中实例化它的一个实例。我该怎么办?

我试过了:

from a.b import module

但是我得到了:

ImportError: No module named a.b

问题答案:

您想要的是相对导入,例如:

from ..a.b import module

问题在于,如果您将test_file.py作为主模块调用,它将无法正常工作。如前所述这里:

请注意,显式和隐式相对导入均基于当前模块的名称。由于主模块的名称始终为“ main
”,因此打算用作Python应用程序主模块的模块应始终使用绝对导入。

因此,如果要调用test_file.py作为主模块,则应考虑更改模块的结构并使用绝对导入,否则只需使用上面的相对导入即可。



 类似资料:
  • 我试图使用摇摆API在一个简单的java项目,需要导入javax.swing包在module-info.java 我在EclipseIDE上使用openJDK-11 这是JFrame实例 这似乎是进口的摇摆包不工作。 我需要帮助

  • 问题内容: 我有三种模式: 我想获取包含A的所有B和C的json数据。我尝试了许多类似的操作: 但没有任何效果。什么是做到这一点的好方法。 问题答案: 请参阅以查看可以传递给的选项。报价: 要包括关联,请使用… 二级和更高级别的关联也可以工作: 不需要像自动那样直接调用或直接调用。

  • 问题内容: 首先,我想创建一个具有以下结构的自定义用户库: src: 库包1 ClassName0.java LibA.pack2 ClassName1.java 我对此没问题。后来我想将此库导入另一个项目并调用 (同时使用pack1和pack2这两个类),由于要求全名,因此将失败,即 如何一次导入整个库以同时使用pack1和pack2这两个类? Ps绝对不是所谓的“嵌套程序包”,但我不知道该如何

  • 问题内容: 我有嵌套的JSON对象,例如 而且我需要获取_events数组并对其进行解析。但是我不知道_events之前的单元格中的内容以及它们的状态。如何使用这种结构? 问题答案: 就像这样使用它: 这是一个有效的jsFiddle:http : //jsfiddle.net/ErHng/( 注意 :它会输出到控制台,因此您需要/ 在chrome中或在Firefox中打开firebug,然后重新运

  • 问题内容: 我有大量(〜40000)嵌套的​​JSON对象,我想将它们插入elasticsearch中。 JSON对象的结构如下: 因此,JSON字段(此示例中为地址)可以具有JSON对象数组。 Logstash配置看起来像什么将这样的JSON文件/对象导入elasticsearch?该索引的elasticsearch映射应该看起来像JSON的结构。elasticsearch文档ID应设置为。 问

  • 问题内容: 用go编程语言,为什么在导入软件包后,我仍然必须在该软件包中的方法前面加上软件包名称? 即 这不是多余的吗?例如,在Java中,无需导入文件就可以执行Files.readAllLines等操作。 问题答案: 我想这并不能真正回答您的问题,但是如果您愿意,您实际上可以在不显式说明软件包的情况下调用方法- 只需在名称前面添加一个即可(但不建议这样做;请参见下文): 注意下面@ JIMT的评