📜  Python - 从父目录导入(1)

📅  最后修改于: 2023-12-03 15:33:56.501000             🧑  作者: Mango

Python - 从父目录导入

当我们工作在一个大型Python项目下时,我们通常需要从多个目录中导入模块。通常情况下,我们可以使用相对导入引入同级目录下的模块。但如果需要从父目录中导入,就需要使用特殊的语法来实现。

问题

假设我们有两个目录,一个称为parent_dir,另一个称为child_dir。我们需要从child_dir 导入一个位于parent_dir中的模块,即父目录中的模块。该怎么办?

解决方法

我们可以使用点号(.)来表示相对路径,使用两个点号(..)来表示父目录。使用该方法,我们可以从父目录中导入模块。

以导入父目录中的module.py文件作为例子,下面是一个示例代码块:

# 在子目录(child_dir)中的文件(child_module.py)中导入父目录(parent_dir)中的文件(module.py)
import sys
sys.path.insert(1, '../')

from module import some_function

首先,我们需要将目录parent_dir添加到Python搜索路径中。这可以通过在程序中执行 sys.path.insert(1, '../')实现。

然后,我们可以使用import语句来导入父目录中的模块。在这种情况下,我们使用from module import some_function语句导入module.py文件中的some_function函数。

注意事项
  • 路径名好坏决定代码能否正常运行,一定要谨慎

  • 使用相对路径时,应确保在不同操作系统上可以正常运行。例如,在Windows系统上,路径分隔符为\,而在Linux和MacOS系统上,路径分隔符为/

  • 虽然可以在Python程序中动态添加搜索路径,但不建议这样做。最好是在程序开发阶段设置好搜索路径。

结论

学会如何从父目录中导入模块对于程序员来说是很有用的,特别是当工作在大型项目中时。Python提供的import语句具有强大的功能,可以轻松地导入在各个目录下的各种模块和功能。