VSCode环境下Python导入函数遇ModuleNotFoundError问题求助
Python模块导入问题排查与解决
问题根源
直接运行working_script.py时,Python默认将脚本所在的workingfolder/目录加入模块搜索路径sys.path,而非项目根目录my_project/,因此无法定位到subfolder模块。
可行解决方案
1. 手动添加项目根目录到搜索路径(临时应急)
在working_script.py的最开头加入以下代码,强制把项目根目录加入Python的模块搜索路径:
import sys import os # 向上回溯一级,获取my_project目录的绝对路径 project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) sys.path.append(project_root) # 之后即可正常导入 from subfolder.helper_functions import my_function
2. 以项目根目录为工作目录运行脚本(推荐)
在VSCode中按以下操作设置:
- 打开项目时选择
my_project/作为工作区根目录 - 运行脚本前,确保终端的工作目录是
my_project/,然后执行:
python workingfolder/working_script.py
或者修改VSCode的运行配置文件(.vscode/launch.json),指定工作目录为项目根:
{ "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "cwd": "${workspaceFolder}" } ] }
3. 使用相对导入(包模式运行)
将my_project视为一个Python包,在working_script.py中使用相对导入语法:
from ..subfolder.helper_functions import my_function
注意:这种方式不能直接运行working_script.py,必须从my_project目录外部,以包的方式启动:
python -m my_project.workingfolder.working_script
内容的提问来源于stack exchange,提问作者Tuva Løfgren
相关产品推荐
相关产品推荐

