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

Python项目中子模块导入出现ModuleNotFoundError问题咨询

问题解决步骤

首先,你的导入语句存在语法错误,正确写法应为 from module4.submodule1.code import code,但即便修正语法,仍会出现模块找不到的问题,原因如下:

Python 默认只会搜索当前脚本所在目录以及 sys.path(或环境变量 PYTHONPATH)中包含的路径。你的 main_code.py 位于 module1 目录下,而 submodule1 属于同级的 module4,不在 Python 默认搜索路径内,因此需要检查并配置 PYTHONPATH 或 sys.path。

具体解决方案

1. 检查并配置环境变量 PYTHONPATH

  • Linux/macOS:在终端执行 echo $PYTHONPATH,查看是否包含项目根目录 ~/project。若未包含,执行以下命令临时添加:
    export PYTHONPATH="$PYTHONPATH:~/project"
    
    若需要永久生效,可将该命令添加到 ~/.bashrc、~/.zshrc 等配置文件中。
  • Windows:在命令提示符执行 echo %PYTHONPATH%,若未包含项目根目录,执行:
    set PYTHONPATH=%PYTHONPATH%;C:\Users\你的用户名\project
    
    永久配置可通过系统属性的环境变量设置界面添加。

2. 在代码中临时添加 sys.path

如果不想修改环境变量,可在 main_code.py 开头添加以下代码,将项目根目录加入搜索路径:

import sys
from pathlib import Path

# 获取项目根目录(main_code.py -> module1 -> project)
project_root = Path(__file__).parent.parent
sys.path.append(str(project_root))

# 之后正常导入
from module4.submodule1.code import code

3. 确保目录被识别为 Python 包

在 module1、module4、submodule1、submodule2 每个目录下创建空的 __init__.py 文件,Python 会将这些目录识别为可导入的包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:04:59