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

Python跨目录导入模块时出现ModuleNotFoundError问题咨询

报错原因与解决方法

你使用的相对路径../folder2/是相对于执行脚本时的终端工作目录,而非file1.py文件本身所在的目录,只要运行脚本时的工作目录不是folder1,这个相对路径就会指向错误的位置,自然找不到目标模块。Python 3.3+已经支持隐式命名空间包,不需要手动添加__init__.py也能识别目录为可导入的包,你之前添加__init__.py后依旧报错的核心原因就是路径指向错误,和是否有__init__.py无关。

方案1:动态添加绝对路径(无额外配置要求,最稳妥)

通过__file__变量获取当前脚本的固定绝对路径,拼接得到folder2的真实路径后加入搜索路径,完全不受运行时工作目录影响:

import sys
import os

# 取当前file1.py所在目录的绝对路径
curr_file_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接得到folder2的绝对路径
folder2_abs_path = os.path.join(curr_file_dir, "..", "folder2")
# 转为规范绝对路径后加入搜索路径,避免路径歧义
sys.path.insert(0, os.path.abspath(folder2_abs_path))

from file2 import foo
foo()

方案2:配置PYTHONPATH(适合长期项目使用)

把project目录的绝对路径添加到系统的PYTHONPATH环境变量中,之后可以直接用项目根目录为基准的绝对导入,不需要额外修改sys.path:

from folder2.file2 import foo
foo()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:06:00