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

Python无法导入平行目录模块(ModuleNotFoundError)求助

解决test.py导入src模块的问题

目录结构

src/
    a.py
    b.py
test/
    test.py

可行解决方案

不用硬编码路径、不破坏目录结构的前提下,按以下步骤操作:

  1. 在src和test目录下分别创建空的__init__.py文件,让这两个目录被识别为Python包,结构变为:
src/
    __init__.py
    a.py
    b.py
test/
    __init__.py
    test.py
  1. 修改test.py的导入逻辑,动态获取项目根目录并添加到Python路径中,代码如下:
import os
import sys

# 动态获取项目根目录(test目录的父级目录)
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 将根目录加入Python搜索路径
sys.path.append(project_root)

# 正常导入src下的模块
from src import a
from src import b

为什么之前的尝试失败

  • 相对导入报错:直接运行test.py时,它被当作顶层脚本而非包的一部分,Python无法识别相对导入的父包,因此报错。
  • 仅加__init__.py无效:没有将项目根目录加入Python的搜索路径,Python找不到src这个包。
  • 硬编码系统路径不可行:而动态获取根目录的方式适配所有系统,不会出现路径兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:35:20