如何配置VS Code交互窗口工作目录,保持工作区路径并导入子模块?
解决方案
要保持${workspaceFolder}作为工作目录,同时让Python找到src目录下的utils.py,可以用以下几种实用方法:
方法1:动态添加模块搜索路径
在preprocessing.py开头加入代码,将当前脚本所在的src目录手动添加到Python的模块搜索路径,既能兼容工作目录为项目根目录的情况,也能让交互窗口识别到utils.py:
import sys from pathlib import Path # 获取当前脚本所在的src目录绝对路径 src_dir = Path(__file__).resolve().parent # 将src目录加入Python模块搜索路径 sys.path.append(str(src_dir)) # 后续代码保持不变 import pandas as pd from utils import ETL df_ini = pd.read_csv("data/raw/data_raw.csv", sep=";", index_col=0)
方法2:将src作为Python包管理
- 在
src目录下创建一个空的__init__.py文件,让Python把src识别为一个合法的包。 - 修改
preprocessing.py中的导入语句为相对导入:
import pandas as pd from .utils import ETL # 用相对导入引用同包内的utils模块 df_ini = pd.read_csv("data/raw/data_raw.csv", sep=";", index_col=0)
运行脚本时,需要从项目根目录执行:
python -m src.preprocessing
VS Code交互窗口中只要工作目录保持为项目根目录,这种相对导入就能正常生效。
方法3:配置VS Code的Python额外路径
直接通过VS Code设置让交互窗口自动识别src目录:
- 打开VS Code设置(快捷键
Ctrl+,)。 - 搜索
python.analysis.extraPaths,点击「编辑 in settings.json」。 - 添加如下配置:
"python.analysis.extraPaths": [ "${workspaceFolder}/src" ]
配置完成后,VS Code交互窗口会自动把src加入模块搜索路径,无需修改代码即可正常导入utils,同时项目根目录作为工作目录的情况下,数据路径也能正常访问。
内容的提问来源于stack exchange,提问作者R L
相关产品推荐
相关产品推荐

