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

VSCode中Python模块导入问题:调试正常运行报错该如何解决?

问题根源

调试模式能正常运行,是因为你在launch.json里把PYTHONPATH设为了工作区根目录,Python能在这个路径下找到utility模块;但直接运行脚本时,默认的sys.path不包含项目根目录,所以找不到模块。

解决办法

方法1:使用相对导入(需从根目录运行脚本)

修改task_functions.py的导入语句为相对导入形式:

from ..utility.utility_functions import utility_func

def task_function() -> bool:
    print(r'I\'m calling utility function now')
    utility_func()

运行时,必须从项目根目录(DIRECTORY_IMPORT)执行命令:

python -m tasks.task_functions

注意:不能直接右键运行task_functions.py,因为主脚本不允许使用相对导入。

方法2:手动添加根目录到模块搜索路径

在task_functions.py开头添加代码,主动把项目根目录加入sys.path:

import sys
from pathlib import Path

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

from utility.utility_functions import utility_func

def task_function() -> bool:
    print(r'I\'m calling utility function now')
    utility_func()

这样不管是右键运行脚本,还是终端执行,都能正常找到utility模块。

方法3:配置VSCode运行环境的PYTHONPATH

和调试模式一样,给普通运行模式也配置PYTHONPATH:

  1. 打开VSCode的设置(快捷键Ctrl+,),搜索python.envFile,设置值为${workspaceFolder}/.env
  2. 在项目根目录创建.env文件,写入:
PYTHONPATH=${PYTHONPATH}:${WORKSPACE_FOLDER}

之后在VSCode里直接运行task_functions.py,就会自动加载这个环境变量,找到模块。

方法4:将项目转为可安装包(适合长期维护的项目)

在项目根目录创建setup.py文件:

from setuptools import setup, find_packages

setup(
    name="my_project",
    version="0.1.0",
    packages=find_packages()
)

然后在终端执行:

pip install -e .

这个命令会把项目以“可编辑”模式安装到Python环境中,之后任何位置都能正常导入utility模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:27:44