Python指定项目结构下如何将module_1函数导入src_1下的module_2
实现方案
你可以根据自己的使用场景选择以下任意一种方式:
方式1:绝对导入(推荐,适配大部分场景)
- 首先将src目录的父目录(也就是你的项目根目录)加入Python模块搜索路径:
Linux/macOS终端执行:export PYTHONPATH=$(pwd)
Windows cmd执行:set PYTHONPATH=%cd%
Windows PowerShell执行:$env:PYTHONPATH = $PWD.Path - 在module_2对应的代码文件中直接导入:
from src.src_1.module_1 import 你要导入的函数名
方式2:同级相对导入
如果你是把src_1作为Python包调用,不需要直接运行module_2下的入口脚本,可以直接用相对导入语法,在module_2的代码中写:
from ..module_1 import 你要导入的函数名
方式3:动态加搜索路径(不需要提前配置环境变量)
直接在module_2的代码开头添加以下内容,动态将src_1目录加入搜索路径后导入:
import sys from pathlib import Path # 取当前文件的上两级目录,也就是src_1目录,加入搜索路径 sys.path.append(str(Path(__file__).parent.parent)) from module_1 import 你要导入的函数名
注意事项
如果你要导入的函数是写在module_1下的独立py文件中,需要先在module_1的__init__.py中暴露该函数,比如函数在module_1/utils.py里,就在module_1/__init__.py中添加:
from .utils import 目标函数名
否则你需要写完整的文件路径导入,比如from src.src_1.module_1.utils import 目标函数名
内容的提问来源于stack exchange,提问作者LIONEL JOSEPH
相关产品推荐
相关产品推荐

