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

Windows下VSCode中Python父项目子项目出现ModuleNotFoundError如何解决?

Python模块导入问题解决方案

编辑:更简洁的解决方案

无需为代码创建单独工作区(除非你确实需要,这种情况可参考下方指南),也不用在parent根目录下放置.vscode文件夹,从左侧“运行和调试”菜单打开工作区启动配置,修改为如下内容:

{
    "folders": [
        {
            "path": "%path to parent%/parent"
        }
    ],
    "settings": {},
    "launch": {
    "version": "0.2.0",
        "configurations": [
            {
                "name": "Launch Python parent",
                "type": "python",
                "request": "launch",
                "program": "${file}",
                "console": "integratedTerminal",
                "cwd": "${workspaceFolder}\\extensions\\mycode", // <-- 重要
                "env": {"PYTHONPATH": "${workspaceFolder}; ${workspaceFolder}\\extensions\\mycode; ${env:PYTHONPATH}"} // <-- 重要
            }
        ]
    }
}

虽然简化程度有限,但无需修改父项目或设置多个工作区。


问题背景

我正在为一个父项目开发子扩展,目录结构如下:

parent/
  extensions/
    mycode/
      myutils/
        IMyModule.py
        MyModule.py
      myscripts/
        myscript.py
  utils/
    __init__.py
    modules.py
  scripts/
    script.py

myscript.py中的导入语句:

# myscript.py
 
from utils.modules import Module
from myutils.mymodule import MyModule

MyModule.py中的导入语句:

# MyModule.py

from IMyModule import IMyModule

(这是我第一次尝试OOP编程)

运行时出现ModuleNotFoundError: No module named 'myutils'错误。

方法一

  • 添加__init__.py文件:在myutils文件夹及所有嵌套子文件夹中添加__init__.py,示例内容如下:

    # myutils/__init__.py
    
    from .IMyModule import *
    from .MyModule import *
    
  • 在VSCode中将parent文件夹添加为工作区,然后在mycode/目录下创建.vscode/launch.json,配置内容如下:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Python: Current File",
                "type": "python",
                "request": "launch",
                "program": "${file}",
                "console": "integratedTerminal",
                "cwd": "${fileWorkspaceFolder}",
                "env": {"PYTHONPATH": "${workspaceFolder:parent}; ${workspaceFolder:mycode}; ${env:PYTHONPATH}"}
            }
        ]
    }
    

    其中cwd配置确保父项目和子项目的工作目录正确,PYTHONPATH配置指定Python的包查找路径。

最终目录结构如下:

parent/
  .vscode/
    launch.json
  extensions/
    mycode/
      myutils/
        __init__.py
        IMyModule.py
        MyModule.py
      myscripts/
        myscript.py
  utils/
    modules.py
  scripts/
    script.py

完成配置后,myscript.py可正常导入模块,父项目代码也能正常运行。

欢迎提出更简单的解决方法建议。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:35:20