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

VSCode中Python ModuleNotFoundError求助:无法导入main模块

问题分析与解决方法

问题根源

  • 直接运行test_main.py时,Python的模块查找路径(sys.path)默认只包含当前脚本所在的tests目录,找不到上层的main.py,所以from main import hello会报模块找不到错误。
  • 相对导入from ..main import hello要求脚本是作为包的一部分被导入或运行的,但直接执行test_main.py时,它被视为顶层脚本,Python无法识别它的父包,因此报错。

可行解决方案

方案1:手动添加项目根目录到Python路径

在test_main.py的最开头添加以下代码,把项目根目录(ModuleProject)加入到Python的模块查找路径中:

import sys
from pathlib import Path

# 获取当前脚本的父目录的父目录(即ModuleProject根目录)
project_root = Path(__file__).parent.parent
sys.path.append(str(project_root))

# 现在可以正常导入
from main import hello

方案2:将项目作为包运行

  1. 在ModuleProject根目录下创建一个空的__init__.py文件,让Python将其识别为一个包。
  2. 打开VSCode终端,切换到ModuleProject的上级目录(比如如果ModuleProject在~/projects下,就进入~/projects),然后运行命令:
python -m ModuleProject.tests.test_main

此时test_main.py作为包的一部分运行,就可以使用相对导入:

from ..main import hello

方案3:修改VSCode运行配置

通过VSCode的launch配置,设置运行时的工作目录为项目根目录:

  1. 打开.vscode/launch.json(如果没有就创建),添加或修改配置:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Run Test",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/tests/test_main.py",
            "cwd": "${workspaceFolder}"
        }
    ]
}
  1. 用这个配置运行test_main.py,此时Python会把项目根目录加入查找路径,直接使用from main import hello即可正常导入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:25:20