📜  从不同目录导入 python 模块 - Python (1)

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

从不同目录导入 Python 模块

在 Python 中,我们经常需要从不同目录中导入模块。本文将介绍如何在Python中从不同目录导入模块。

相对导入

Python提供了相对导入机制,它可以从当前的目录结构开始,向上或向下查找需要导入的模块。相对导入使用“..”或“.”表示相对路径。

# 在同一目录下导入模块
from mymodule import myfunction

# 从兄弟目录中导入模块,使用 “.” 表示相对路径
from ..sibling import mysiblingfunction

# 从父目录中导入模块,使用“..”表示相对路径
from ...parent import myparentfunction

在使用相对导入时需要注意:

  • 只能在包中使用相对导入,不可以在脚本中使用。
  • 在使用相对导入时,必须从导入时的文件所在位置开始运行代码。
添加搜索路径

Python中也可以通过添加搜索路径来导入模块。搜索路径是一个列表,包含了Python解释器在搜索模块时查找的目录。

import sys

# 添加搜索路径
sys.path.append('/path/to/module/folder/')

# 导入模块
from mymodule import myfunction

需要注意的是,添加搜索路径是临时性的,并不会永久改变Python的搜索路径。如果需要永久改变,可以参考下面的方案。

修改PYTHONPATH环境变量

Python的搜索路径是通过环境变量PYTHONPATH设置的。可以在命令行中设置PYTHONPATH,也可以在代码中修改。

import os

# 设置 PYTHONPATH 环境变量
os.environ['PYTHONPATH'] = '/path/to/module/folder/'

# 导入模块
from mymodule import myfunction

需要注意的是,PYTHONPATH环境变量会影响整个Python解释器,因此修改后所有项目都会受到影响。建议使用虚拟环境避免影响其他项目。

总结

本文介绍了使用相对导入和添加搜索路径两种方法,在Python中导入不同目录中的模块。需要注意的是,在使用相对导入和添加搜索路径时,需要注意路径的正确性和效率问题。同时,为了避免不同的项目之间产生干扰,建议使用虚拟环境或者容器来隔离不同的项目。