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

VSCode中Python导入报错(PyCharm正常):模块未找到与相对导入问题

VSCode中Python模块导入报错解决

文件结构

assignment
|
|__ qn1
|    |__ qn1.py
|    
|__ qn2
     |__ qn2.py

代码内容

qn1/qn1.py

class A:
    def __init__(self):
        pass
    def method(self):
        pass

qn2/qn2.py

from qn1.qn1 import A

问题现象

  • 代码在PyCharm中正常运行,但VSCode执行时抛出:ModuleNotFoundError: No module named 'qn1'
  • 尝试相对导入语句:
    from ..qn1.qn1 import A
    from ..qn1 import qn1; qn1.A
    
    触发报错:ImportError: attempted relative import with no known parent package
  • 已在qn1目录添加__init__.py文件,问题未解决

可行解决方案

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

在qn2.py开头加入以下代码,将assignment目录加入Python的模块搜索路径:

import sys
from pathlib import Path
# 获取当前文件的父目录的父目录(即assignment目录)
sys.path.append(str(Path(__file__).parent.parent))

from qn1.qn1 import A

方案2:配置VSCode运行环境

  1. 打开VSCode的.vscode/launch.json文件(若不存在则手动创建)
  2. 修改或添加运行配置,指定工作目录为assignment:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "cwd": "${workspaceFolder}/assignment",
            "console": "integratedTerminal"
        }
    ]
}

之后直接运行qn2.py即可。

方案3:用模块方式运行

打开VSCode终端,切换到assignment目录,执行以下命令运行qn2.py:

python -m qn2.qn2

此方式会将assignment视为包根目录,支持相对导入(此时qn2.py中用from ..qn1.qn1 import A也可正常工作)


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:45:36