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

Python跨模块导入报错:ModuleNotFoundError问题求助

Python模块导入依赖问题解决方案

问题场景

项目结构:

/project_name
    main.py
    __init__.py
    /modules
        __init__.py
        module1.py
        module2.py

环境信息:

  • Windows系统
  • Conda虚拟环境(Python 3.10)
  • VSCode编辑器

运行main.py中的from modules.module1 import *时,触发错误:

ModuleNotFoundError: No module named 'module2'

原因是module1.py中使用了from module2 import *,当从项目根目录运行main.py时,Python无法在全局路径中找到module2。

解决方案

方法1:使用相对导入(推荐,符合Python包规范)

修改module1.py中的导入语句为相对导入,指向同目录下的module2:

from .module2 import *

这种方式明确表示从当前包内导入模块,是包内模块相互引用的标准写法。

方法2:手动添加项目路径到Python搜索路径

在main.py的最开头添加以下代码,将项目根目录加入Python的模块搜索路径:

import sys
import os
# 获取当前文件所在目录(项目根目录)
project_root = os.path.dirname(os.path.abspath(__file__))
# 添加到搜索路径
sys.path.append(project_root)

这样Python会把项目根目录纳入搜索范围,module1中的from module2 import *就能找到对应的模块。

方法3:配置VSCode运行工作目录

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

  1. 打开VSCode,点击左侧「运行和调试」面板
  2. 点击「创建launch.json文件」,选择Python环境
  3. 修改配置内容,添加cwd字段:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: main.py",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "cwd": "${workspaceFolder}",
            "console": "integratedTerminal"
        }
    ]
}

配置完成后,运行main.py时会以项目根目录为工作目录,模块导入路径自动生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 22:55:56