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

如何从其他文件夹导入依赖?解决跨文件夹模块导入的依赖报错问题

解决Python跨文件夹导入依赖问题

先确认你的目录结构(假设A和B是同级目录):

项目根目录/
├─ A/
│  └─ main.py
└─ B/
   ├─ B1.py
   ├─ B2.py
   └─ B3.py

不用修改B文件夹里的任何代码,两种方法搞定:

方法1:直接把B文件夹加入模块搜索路径

在main.py开头加这段代码:

import sys
import os

# 拿到B文件夹的绝对路径:先找当前main.py的位置,再往上一级定位到B
b_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "../B")
sys.path.append(b_dir)

# 现在可以正常导入了
from B1 import classB1

原理:把B文件夹加到Python的模块搜索列表sys.path后,B1、B2这些py文件就相当于顶层模块,B1里的from B2 import classB2会直接在搜索路径里找到B2.py,不会报错。

方法2:按Python包规范导入(更推荐)

如果项目需要长期维护,建议用这种更规范的方式:

  1. 在B文件夹里新增一个空的__init__.py文件(这不算修改原有代码,只是加个空文件,符合要求)
  2. 在main.py里加这段代码:
import sys
import os

# 拿到项目根目录的绝对路径(包含A和B的那个文件夹)
root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(root_dir)

# 把B当作包来导入
from B.B1 import classB1

原理:加了__init__.py后,B就变成了合法的Python包,Python会自动识别B1里的from B2 import为包内的相对导入,从而正确找到B2、B3这些模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 06:29:59