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

从父目录导入脚本

孟开宇
2023-03-14
问题内容

如何导入驻留在父目录中的模块(python文件)?

这两个目录中都有__init__.py文件,但是我仍然无法从父目录导入文件?

在此文件夹布局中,脚本B尝试导入脚本A:

Folder A:
   __init__.py
   Script A:
   Folder B:
     __init__.py
     Script B(attempting to import Script A)

脚本B中的以下代码不起作用:

import ../scriptA.py # I get a compile error saying the "." is invalid

问题答案:

您无需在Python中导入脚本,而可以导入模块。一些python模块也是可以直接运行的脚本(它们在模块级别上做了一些有用的工作)。

通常,最好使用绝对进口,而不是相对进口。

toplevel_package/
├── __init__.py
├── moduleA.py
└── subpackage
    ├── __init__.py
    └── moduleB.py

moduleB

from toplevel_package import moduleA

如果您想moduleB.py作为脚本运行,请确保的父目录toplevel_package在您的中sys.path



 类似资料:
  • 问题内容: 我有以下内容: 我正在尝试从父目录导入。在这种情况下,我尝试从测试文件夹中运行“ UnitTest1.py”,并从其上方的目录(文件“ ModuleFile.py”)导入。 我知道已经有很多答案。 SO问题1,SO问题2,其他所有SO问题。我只是找不到“使用../”作为相对导入而不是显式路径。 我知道从Python 2.5开始,根据提到使用的文档,它们支持“相对导入”,但是我专门尝试这

  • 问题内容: 如何从父目录进行相对导入? 来自: 这给出了一个模棱两可的错误: 如何从父目录本地导入? 问题答案: 感谢您添加到您的问题。首先是一个答案,然后是一些解释。我建立了您的代码, 去获得,就像你拥有它一样。(我忽略了错误消息。) 如您所愿,将导入行设置回“ ../../../meme”。 (注释掉一些包含未使用变量的代码。) 然后在梅梅/ CMD /米姆目录,要么或者工作。 刚才我说去安装

  • 我有一个名为的脚本,代码如下(我已经大大简化了事情): 但我不仅仅有一个名为的脚本。我有许多名为的脚本,按以下目录结构组织: 每个都有一个稍微不同的实现。我想对做的是通过导入每个脚本并对其运行一些测试来测试所有脚本。下面是一些代码(*'s表示伪代码) 我该怎么做?特别是,如何迭代导入脚本,例如,?

  • 问题内容: 我有这个main.go文件: 我有这个目录结构: 当我使用以下命令构建项目时: 我收到此编译错误: src / main / main.go:3:8:/ home / oleg / codes / oresoftware / oredoc / test / builds / go / src / one / entities / bar中没有Go文件 该错误是有道理的。有什么方法可以从

  • 我有以下目录结构: b、 py需要在a.py中导入一个类。因此,我可以在导入a之前将以下行添加到b.py。 sys.path.append(os.path.dirname(sys.argv[0])) 这是可行的,我可以从任何目录调用b.py,它也可以导入a。但是,当我在另一个目录中编写脚本以使用execfile()调用此文件时,这将失败。 我尝试了相对导入,但得到了“在非包错误中尝试相对导入” 我

  • 问题内容: 我有一个名为“ ClassA”的Python类,另一个应该导入“ A ClassB”的ClassA的Python类。目录结构如下: 我将如何使用,以便ClassB可以使用ClassA? 问题答案: 您确实应该使用软件包。然后将MainDir放置在文件系统中sys.path上的某个点(例如… / site- packages)上,然后可以在ClassB中说: 您只需要在每个目录中放置命名