免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

Kedro × VS Code 开发环境完整配置指南:解释器、CLI Tasks、LSP 目录校验、Kedro-Viz 与远程调试

Kedro × VS Code 开发环境完整配置指南:解释器、CLI Tasks、LSP 目录校验、Kedro-Viz 与远程调试 Kedro × VS Code 开发环境完整配置指南解释器、CLI Tasks、LSP 目录校验、Kedro-Viz 与远程调试【免费下载链接】kedroKedro is a toolbox for production-ready data science. It uses software engineering best practices to help you create data engineering and data science pipelines that are reproducible, maintainable, and modular.项目地址: https://gitcode.com/GitHub_Trending/ke/kedroKedro 是一个面向生产级数据科学的工具箱强调流水线的可复现、可维护与模块化。本指南围绕 docs/ide/set_up_vscode.md 展开系统讲解如何在 Visual Studio Code以及基于 VS Code 的 Cursor中搭建完整的 Kedro 开发环境从 Python 解释器选择、venv配置到 Kedro CLI 的 Tasks 自动化、Kedro VS Code 扩展的 LSP 目录实时校验、Kedro-Viz 流水线可视化再到本地与远程调试。读完本文你将能够在 VS Code 中一站式完成 Kedro 项目的运行、测试、打包、导航与调试并理解这些能力背后的 Kedro 源码实现。第一步在 VS Code 中打开项目并选择 Python 解释器打开项目并安装 Python 插件在 VS Code 中打开一个新的项目目录即你的 Kedro 项目根目录然后在Tools and languages下安装 Python 插件Python extension。这些步骤同样适用于 Cursor——Cursor 基于 VS Code 构建完全支持 VS Code 扩展。Kedro 项目通过根目录的pyproject.toml携带项目元数据。Kedro 在启动时会解析其中的[tool.kedro]段读取package_name、project_name、kedro_init_version等字段见 startup.py。因此在 VS Code 中打开目录时务必打开包含pyproject.toml的项目根目录而不是src/或conf/子目录。选择 Python 3 解释器Python 是解释型语言要运行 Python 代码必须先告诉 VS Code 使用哪个解释器打开命令面板macOS 使用Cmd Shift PWindows/Linux 使用Ctrl Shift P输入Python: Select Interpreter并选中该命令此时应当能看到你先前创建的conda环境选择该环境即可。选好解释器后VS Code 底部的状态栏会显示当前解释器路径所有终端、调试会话与代码分析都会使用该解释器。Kedro VS Code 扩展项目导航与代码定位Kedro VS Code 扩展 支持 Kedro 0.19主要能力包括查找数据集dataset定义定位代码中对数据集的引用在 Kedro 项目中快速导航。Cursor 用户注意该扩展同样适用于 Cursor。Cursor 基于 VS Code 构建并支持 VS Code 扩展因此本页所有功能在 Cursor 中均可使用。可从 Cursor 的 Extensions 面板安装由 Open VSX Registry 提供扩展标识为kedro/Kedro。该扩展在后台通过 Language Server ProtocolLSP工作这也是后续目录实时校验与 Kedro-Viz 内嵌可视化的基础。配置venv/virtualenv解释器要确保你的虚拟环境出现在 Python 解释器列表中可以打开settings.json通过命令面板执行Preferences: Open User Settings (JSON)或Workspace Settings添加如下配置python.venvPath: /path/containing/your/venvs/python.venvPath指向存放虚拟环境的父目录VS Code 会扫描该目录下的所有虚拟环境并加入解释器列表。约定优于配置如果你的项目目录下存在名为venv的虚拟环境venv或virtualenv创建VS Code 会自动将其加载为 Python 解释器这一点与 PyCharm 类似。这是默认行为除非你按上述方式手动指定了其他解释器。为 Kedro CLI 命令配置 VS Code TasksVS Code Tasks 可以把kedro run、kedro test、kedro install、kedro package等常用 CLI 命令固化为可一键触发的任务。先找到 Kedro CLI 脚本的路径# macOS / Linux which kedro # Windows在 Anaconda Command Prompt 中 where kedro然后打开Terminal Configure Tasks...VS Code 会创建或打开项目根目录.vscode/tasks.json。将其替换或扩展为以下内容{ // See https://go.microsoft.com/fwlink/?LinkId733558 // Kedro tasks version: 2.0.0, tasks: [ { label: Install, type: shell, command: /path/to/kedro/script, args: [ install ] }, { label: Test, group: test, type: shell, command: /path/to/kedro/script, args: [ test ] }, { label: Run, type: shell, command: /path/to/kedro/script, args: [ run ] }, // 这是默认构建任务 { label: Package, group: { kind: build, isDefault: true }, type: shell, command: /path/to/kedro/script, args: [ package ], // 打包前会先运行 Test 任务 dependsOn: [ Test ] } ] }关键点说明command填上一步which kedro/where kedro得到的完整路径args是要执行的 Kedro CLI 子命令可按需追加参数见下文dependsOn支持任务编排例如Package会先执行Testgroup: {kind: build, isDefault: true}将Package设为默认构建任务。启动构建Terminal Run Build Task...macOS 快捷键Cmd Shift B。运行其他任务Terminal Run然后选择目标任务。结合源码kedro run支持哪些参数为Run任务追加参数时可以参考 Kedro CLIrun命令的完整选项实现见 project.py。常用参数包括参数作用--pipelines name1,name2运行指定注册流水线例如--pipelines data_engineering,feature_engineering不指定则运行__default__流水线--runner name指定 runner可选SequentialRunner、ParallelRunner、ThreadRunner--runner-params kv,...向 runner 传递额外关键字参数例如max_workers4,is_asyncTrue--tags tag只运行带有指定标签的节点可多次使用取并集--nodes name只运行指定名称的节点--from-inputs/--to-outputs以数据集为起点/终点裁剪流水线--from-nodes/--to-nodes以节点为起点/终点裁剪流水线--params kv,...向上下文初始化器传递额外参数嵌套参数用.分隔如param_group.param1:value1--load-versions ktimestamp,...按时间戳加载指定数据集版本用于版本化数据集--env env指定配置环境默认local--conf-source path指定项目配置存放目录--only-missing-outputs只运行输出缺失的节点例如若想以ParallelRunner运行data_science流水线可将Run任务的args改为args: [ run, --pipelines, data_science, --runner, ParallelRunner, --runner-params, max_workers4 ]设置自定义 Kedro 项目路径扩展 0.3.0从 Kedro VS Code 扩展 0.3.0 起可以为扩展指定自定义的 Kedro 项目路径。以下场景尤其适用Kedro 项目不在工作区根目录想处理当前工作区之外的 Kedro 项目有多个 Kedro 项目需要在它们之间切换。方式一通过命令面板设置打开命令面板Cmd Shift PmacOS或Ctrl Shift PWindows/Linux输入Kedro: Set Project Path并选择输入 Kedro 项目的绝对路径例如/Users/username/projects/my-kedro-project。方式二通过 VS Code 设置 UI 设置打开设置Cmd ,macOS或Ctrl ,Windows/Linux在设置搜索栏中输入kedro找到Kedro: Project Path设置项在字段中输入 Kedro 项目的绝对路径。多根工作区集成如果指定的 Kedro 项目路径不属于当前工作区扩展会自动将其作为多根工作区multi-root workspace的一部分加入工作区从而可以在资源管理器中看到项目文件浏览项目结构对指定项目使用 Kedro 扩展的全部功能。目录结构示例当 Kedro 项目嵌套在其他文件夹中时设置自定义项目路径可以帮助扩展正确定位。例如root │ file001.txt │ └───folder1 │ │ file011.txt │ │ file012.txt │ │ │ └───kedroProject -- 将此路径设置为项目路径 │ │ pyproject.toml │ │ README.md │ │ ... │ └───folder2 │ file020.txt │ file021.txt此时应将 Kedro 项目路径设置为kedroProject目录的绝对路径例如/Users/username/root/folder1/kedroProject。在多个项目之间切换如果同时维护多个 Kedro 项目只需更新项目路径设置即可切换。扩展会自动检测路径变更并重新配置自身指向新指定的项目。排障如果设置自定义路径后扩展仍无法识别 Kedro 项目请检查路径是否指向有效的 Kedro 项目应包含带有 Kedro 依赖的pyproject.toml路径是否为绝对路径而非相对路径若修改未生效重新加载 VS Code。什么是“有效的 Kedro 项目”从源码看Kedro 会读取项目根目录的pyproject.toml并强制要求存在[tool.kedro]段及package_name、project_name、kedro_init_version三个必填键同时校验kedro_init_version与当前 Kedro 包的主版本号一致见 startup.py。因此自定义路径必须指向满足这些条件的项目根目录。使用 Kedro LSP 实现 catalog 实时校验借助最新版 Kedro VS Code 扩展无需安装额外的 YAML 插件或 JSON Schema即可自动检查catalog*.yml/catalog*.yaml文件。扩展采用Language Server ProtocolLSP方式在编辑过程中即时捕获配置问题。工作原理解析与数据集检查扩展读取 catalog 文件尝试加载每个数据集以确认配置是否正确即时反馈如果某个数据集的类型无效或缺少依赖编辑器内会出现红色下划线同时 VS Code 的Problems面板会列出问题条目增量与周期性校验打开或编辑文件时扩展会重新校验也可以在后台持续运行让你始终掌握潜在问题。在 Problems 面板中查看错误VS Code 的Problems面板汇总了所有 catalog 问题打开View Problems或按Ctrl Shift MmacOS 为Cmd Shift M展开报告的错误查看详细信息例如 Class not found.点击错误即可跳转到 catalog 文件中的问题行。这样可以在运行任何 Kedro 流水线之前就修复由数据集类型拼写错误、缺失模块等原因导致的错误。结合仓库理解 catalog 校验的“检测对象”LSP 校验的数据集类型集合与 Kedro 核心模块一一对应。仓库自带的 catalog JSON Schema 文件 static/img/kedro-catalog-0.19.json 中列举了核心类型CachedDataset、MemoryDataset、LambdaDataset等并为每种类型声明了type必填字段与copy_mode、data、dataset等可选属性。此外Kedro CLI 还提供了三个与 catalog 排查配套的命令见 catalog.pykedro catalog describe-datasets按类型分组描述指定流水线使用的数据集显式定义、工厂模式解析、默认三类kedro catalog list-patterns列出 catalog 中按优先级排序的数据集工厂模式kedro catalog resolve-patterns将数据集工厂模式对指定流水线的数据集进行解析。在 VS Code 终端中运行这些命令可以配合 LSP 校验快速定位 catalog 配置问题。在 VS Code 中可视化流水线Kedro-VizKedro VS Code 扩展集成了 Kedro-Viz无需离开编辑器即可查看流水线打开命令面板Cmd Shift PmacOS或Ctrl Shift PWindows/Linux输入kedro: Run Kedro Viz并选择扩展会在编辑器内启动 Kedro-Viz 并图形化展示你的流水线。修改 Kedro 项目后如需更新 Kedro-Viz 流程图可再次打开命令面板并执行kedro: restart server。节点与数据集的导航跳转到节点函数点击 Kedro-Viz 流程图中的节点会自动跳转到代码中对应的节点函数跳转到 DataCatalog点击流程图中的数据节点会打开 Data Catalog 中对应的数据集定义。自动重载Auto reload扩展可以在配置、流水线或 catalog 文件发生变化时自动刷新 Kedro-Viz打开设置Cmd ,macOS或Ctrl ,Windows/Linux搜索 Kedro Auto Reload勾选Kedro: Auto Reload Kedro Viz。注意由于自动重载会重启 LSP 服务器Kedro-Viz 中的当前状态如展开的流水线、缩放级别会被重置。主题切换可在浅色与深色主题之间切换 Kedro-Viz打开命令面板Cmd Shift PmacOS或Ctrl Shift PWindows/Linux输入Kedro: Toggle Kedro Viz Theme并选择。调试 Kedro 项目第一步配置PYTHONPATH调试时可能需要先在项目根目录创建.env文件将./src/目录的完整路径加入PYTHONPATH环境变量# macOS / Linux PYTHONPATH/path/to/project/src:$PYTHONPATH # Windows PYTHONPATHC:/path/to/project/src;%PYTHONPATH%关于环境变量定义文件.env的更多信息参见 VS Code 官方文档的 Environment variable definitions file 一节。需要说明的是Kedro 自身也大量依赖环境变量参与运行配置例如KEDRO_ENV用于指定配置环境见 session.pyPYTHONPATH则保证解释器能导入项目源码包。第二步创建launch.json点击左侧活动栏的Run and Debug图标macOS 快捷键Cmd Shift D。若尚无配置点击create a launch.json file否则点击左上角的下拉箭头选择Add Configuration。如果遇到Cannot read property openConfigFile of undefined错误可以手动在.vscode目录创建launch.json并粘贴下面的配置。编辑打开的launch.json{ // 使用 IntelliSense 了解可能的属性。 // 悬停可查看现有属性的描述。 // 更多信息请访问https://go.microsoft.com/fwlink/?linkid830387 version: 0.2.0, configurations: [ { name: Python: Kedro Run, type: python, request: launch, console: integratedTerminal, module: kedro, args: [run] // 其他参数应以逗号分隔列表的形式传入 // 例如 args: [run, --pipelines, pipeline_name] } ] }这里的module: kedro对应python -m kedro的调用方式。仓库中的main.py 正是这一入口当以python -m kedro启动时它会调用kedro.framework.cli.main()并把sys.argv[0]规范化为python -m kedro。如需调试其他命令只需修改args数组例如[run, --pipelines, data_science]运行指定流水线[test]运行项目测试[package]打包项目。第三步设置断点并启动调试以在pipeline.py中设置断点为例点击代码行左侧的空白区域出现红点即表示断点已设置。点击左侧栏的Debug按钮然后选择调试配置Python: Kedro Run点击绿色播放按钮Debug执行到断点处时程序会暂停你可以检查变量、单步执行、查看调用栈进阶远程解释器调试VS Code 支持远程调试。下面的示例假设远程计算机运行 Unix 类系统可 SSH 访问且待调试代码运行在远程计算机上。1. 安装ptvsd在本地与远程两台计算机上于相应的conda环境中分别执行python -m pip install --upgrade ptvsd2. 添加远程调试配置按上文调试章节打开launch.json在configurations数组中新增{ name: Kedro Remote Debugger, type: python, request: attach, pathMappings: [ { // 也可以手动指定包含源码的目录。 localRoot: ${workspaceFolder}, remoteRoot: /path/to/your/project } ], port: 3000, // 设置为远程端口。 host: 127.0.0.1 // 设置为远程主机的公网 IP。 }将remoteRoot改为项目在远程计算机上的路径。3. 在项目入口中挂载调试器打开文件src/package_name/__main__.py在顶部附近加入import ptvsd # 允许其他计算机通过此 IP 和端口连接到 ptvsd。 ptvsd.enable_attach(address(127.0.0.1, 3000), redirect_outputTrue) # 暂停程序直到远程调试器连接 print(Waiting for debugger to attach...) ptvsd.wait_for_attach()4. 保持两端源码一致确保本地与远程两台计算机执行代码的那台拥有相同的源码。例如使用scp同步scp -r project_root your_usernameremote_server:projects/上面的示例假设远程计算机用户主目录下存在名为projects的目录项目将复制到该目录。这一步可以固化为上文提到的 Deploy 任务// 添加到 tasks.json 的 tasks 数组中 { label: Deploy, type: shell, command: scp -r project_root your_usernameremote_server:projects/, }另有第三方 VS Code 插件支持远程工作区可自行在扩展市场检索 vscode-remote-workspace。5. 在远程计算机上启动流水线while :; do kedro run; done终端中会出现如下提示并暂停执行Waiting for debugger to attach...6. 建立 SSH 隧道在本地打开新的终端会话建立从本地到远程的 SSH 隧道保持该进程运行ssh -vNL 3000:127.0.0.1:3000 your_usernameremote_server7. 附加调试器回到 VS Code 的Debugging区域选择刚创建的远程调试配置Kedro Remote Debugger按上文调试章节的描述设置断点然后点击绿色播放按钮启动调试关于 VS Code 调试的更多信息可查阅 VS Code 官方调试文档。小结至此你已经在 VS Code / Cursor 中完成了一整套 Kedro 开发环境搭建通过Python: Select Interpreter选择conda或venv解释器用Tasks固化install、test、run、package等 CLI 操作借助Kedro VS Code 扩展实现项目导航、自定义项目路径、catalog 的 LSP 实时校验与内嵌 Kedro-Viz 可视化并通过launch.json实现本地与远程ptvsd SSH 隧道调试。这些能力的底层都建立在 Kedro 的 CLI 架构cli、项目元数据解析startup.py与 catalog 机制catalog.py之上理解源码有助于你更灵活地调整任务参数与调试配置。相关完整配置示例可继续阅读同目录下的 docs/ide/set_up_pycharm.md 以对比另一主流 IDE 的等价设置。【免费下载链接】kedroKedro is a toolbox for production-ready data science. It uses software engineering best practices to help you create data engineering and data science pipelines that are reproducible, maintainable, and modular.项目地址: https://gitcode.com/GitHub_Trending/ke/kedro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表