You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python跨目录调用模块时的相对路径问题术语咨询

问题专业名称

这种问题的专业名称是当前工作目录(CWD, Current Working Directory)不匹配问题,核心是代码依赖进程启动时的工作目录来解析相对路径,而非模块自身的实际位置。

问题本质

当module_1/file.py调用module_2/utils.py的load_file()时,Python进程的当前工作目录是启动脚本时的路径(比如项目根目录或module_1目录),而非module_2的目录。这就导致load_file()里的'file.txt'会去当前工作目录查找,而不是module_2下的目标文件,最终引发文件找不到的错误。

修复示例

要解决这个问题,需要在utils.py中基于模块自身的位置构建绝对路径,代码示例:

import os

def load_file():
    # 获取当前模块文件的绝对路径所在目录
    module_path = os.path.dirname(os.path.abspath(__file__))
    # 拼接目标文件的绝对路径
    target_file = os.path.join(module_path, "file.txt")
    with open(target_file, "r") as f:
        return f.read()

内容的提问来源于stack exchange,提问作者Faisal Hejary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 04:01:39