如何使用sys模块实现Python跨多级上层目录的函数导入
多层级上层目录导入实现方案
核心思路是把main.py所在的项目根目录加入Python的模块搜索路径sys.path,具体操作如下:
具体代码实现
在thisissohard.py文件的开头添加以下代码:
import sys import os # 动态获取项目根目录(MainApp文件夹)的绝对路径 # 从当前文件所在的 fourthfolder 向上回溯3层即可到达 MainApp 目录 project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "..")) # 将项目根目录加入Python模块搜索列表 sys.path.append(project_root) # 直接导入main.py中的目标函数即可,假设你要导入的函数名为target_func from main import target_func
路径逻辑说明
os.path.dirname(__file__)会自动获取当前thisissohard.py文件所在的文件夹路径,即D:\MainApp\subfolder\thirdfolder\fourthfolder- 每添加一个
".."就向上跳转一级目录,3个".."刚好从第四级子目录回退到MainApp文件夹 - 用
os.path.abspath统一转为绝对路径,避免不同运行环境的路径识别问题
注意事项
- 不要硬编码写死绝对路径(比如直接写
sys.path.append("D:\\MainApp")),换设备或者移动项目位置就会失效,动态拼接路径的兼容性更好 - 如果后续调整了
thisissohard.py的存放层级,只需要增减".."的数量即可适配
内容的提问来源于stack exchange,提问作者Aaseer
相关产品推荐
相关产品推荐

