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

Python本地模块导入问题:跨目录模块引用报错求解

Python模块导入问题解决方案

项目结构

project_folder
    |--configuration
        |--__init__.py
        |--config.py
        |--info.py
    |--data
    |--src
        |--models
            |--model.py
        |--scripts
            |--collect.py
        |--tools
            |--__init__.py
            |--utils.py
            |--process.py
        |--train
            |--trainModel.py
    |--server.py

问题背景

  • configuration/config.py 通过 import info 导入同目录下的 info.py(依赖其中的一个列表)。
  • 在 src/tools/utils.py 中尝试用 import configuration.config as con 导入时,触发错误:ModuleNotFoundError: No module named 'configuration'。
  • 添加 sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..')) 后,又出现新错误:ModuleNotFoundError: No module named 'info'。

可行解决方案

方法1:修正config.py的相对导入(推荐)

问题根源是 config.py 里的 import info 是隐式相对导入,当项目根目录加入sys.path后,Python会把它当作顶级模块去查找,找不到同目录的文件。改成显式相对导入即可:

# configuration/config.py
from . import info

然后在 src/tools/utils.py 中保留路径添加代码,使用绝对导入:

# src/tools/utils.py
import os
import sys
# 将项目根目录添加到Python路径
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')))

import configuration.config as con

方法2:调整utils.py的路径配置(无需修改config.py)

如果不想改动config.py,可以在utils.py中先把 configuration 目录也加入sys.path,确保config.py能找到info:

# src/tools/utils.py
import os
import sys
root_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
sys.path.append(root_dir)
# 将configuration目录添加到路径,让config.py能直接找到info
sys.path.append(os.path.join(root_dir, 'configuration'))

import configuration.config as con

方法3:设置PYTHONPATH环境变量(长期最优方案)

不需要修改任何代码,直接在运行脚本前将项目根目录加入PYTHONPATH:

  • Linux/macOS终端:
export PYTHONPATH=/path/to/your/project_folder:$PYTHONPATH
  • Windows命令行:
set PYTHONPATH=C:\path\to\your\project_folder;%PYTHONPATH%

设置完成后,直接在utils.py中使用绝对导入即可:

# src/tools/utils.py
import configuration.config as con

此时config.py里的 import info 也能正常工作,因为Python会自动在 configuration 包内查找模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 19:07:16