如何使用 Kiro 进行 Python 开发

如何使用 Kiro 进行 Python 开发

Kiro 为 Python 项目提供强大的 AI 辅助开发功能,帮助您更高效地编写、调试和维护代码。

前置条件

在使用 Kiro 进行 Python 开发之前,请确保您已安装:

  • Python:为您的平台安装最新版本(推荐 Python 3.8+)
  • pip:Python 包安装器(随 Python 一起提供)
  • 虚拟环境:使用 venvvirtualenvconda 进行依赖管理
  • Git:用于版本控制和协作

扩展

Kiro 支持来自 Open VSX 的扩展,可以增强您的 Python 开发体验。以下是一些有用的扩展:

  • Python - Python 语言支持,提供 IntelliSense (Pylance)、调试 (Python Debugger)、代码检查、格式化、重构、单元测试等扩展访问点。
  • PyLint - 为 Python 文件提供代码检查支持。
  • Jupyter - Jupyter notebook 支持,支持 Intellisense、调试等功能的交互式编程和计算。
  • Python Debugger - Python 调试器 (debugpy) 扩展,为 Python 应用程序提供调试功能。
  • Rainbow CSV - 高亮显示 CSV 和 TSV 文件,运行类 SQL 查询

您可以在 Kiro 中安装这些扩展,使用扩展面板并搜索上述列出的扩展名称。

使用您的环境

使用 Kiro,您可以利用聊天功能来设置新项目或处理现有项目。

项目配置和结构

Kiro 可以帮助您为 Python 项目设置和维护配置文件,并按照 Python 最佳实践组织您的项目。

  • 初始化配置文件:要求 Kiro 根据项目初始化默认配置文件。
  • 创建项目结构:要求 Kiro 根据需求和最佳实践创建项目结构。

示例提示:

"设置一个包含开发依赖的 requirements.txt" "为我的 Django 应用程序配置 .env 文件" "设置带有适当 __init__.py 文件的 Python 包结构" "创建带有蓝图的 Flask 项目结构" "组织我的数据科学项目,包含 notebook 和模块" "为 FastAPI 项目创建包含 pytest 和 black 的 pyproject.toml" 

代码分析和重构

Kiro 可以分析您的 Python 代码以识别问题并建议改进:

  • 代码质量分析:要求 Kiro 审查您的代码,查找潜在错误、性能问题或 PEP 8 合规性
  • 重构协助:获得提取函数、重命名变量或重构代码的帮助
  • 类型提示:Kiro 可以建议类型注解以提高代码清晰度并捕获错误

示例提示:

"分析这个函数的潜在错误和性能问题" "重构这段代码以遵循 PEP 8 风格指南" "为这个 Python 模块添加类型提示" "将这段同步代码转换为使用 async/await" 

调试协助

当您在 Python 代码中遇到错误时:

  • 错误解释:Kiro 可以用简单的语言解释 Python 回溯和错误消息
  • 解决方案建议:获得常见 Python 错误的可操作修复方案
  • 运行时调试:Kiro 可以帮助设置调试配置和断点

示例:

"解释这个 Python 错误:AttributeError: 'NoneType' object has no attribute 'split'" "帮我调试这个返回 500 错误的 Django 视图" "为什么我的 pandas DataFrame 操作这么慢?" 

Steering

Steering 允许您为 Kiro 提供项目特定的上下文和指导原则。Kiro 可以生成您可以完善的 steering 文件:

  1. 产品简介 (product.md) - 包含产品信息、目的和关键功能
  2. 技术栈 (tech.md) - 详细说明技术、框架和开发指导原则
  3. 项目结构 (structure.md) - 提供项目组织方式的信息

对于 Python 项目,您可以创建额外的自定义 steering 文件以提供更具体的指导:

创建自定义 Steering 文件

使用以下说明向您的项目添加新的 steering 文档。

添加新的 steering 文档

  1. 导航到侧边栏中的 Kiro 视图。
  2. Agent Steering 部分,选择 + 按钮创建新的 steering 文件。
  3. 输入具有描述性标题的文件名。
  4. 按照 markdown 约定添加您的自定义 steering 内容。

自定义 steering 文件存储在 .kiro/steering/ 目录中,并在交互过程中被 Kiro 自动识别。

代码风格和约定

例如,您可以为项目定义自定义命名约定、文件结构或实践。创建 python-conventions.md steering 文件来定义您团队的编码标准:

Python 约定 命名约定 - 变量和函数使用 snake_case - 类使用 PascalCase - 常量使用 UPPER_SNAKE_CASE - 使用解释用途的描述性名称 代码风格 - 遵循 PEP 8 指南 - 使用 Black 进行代码格式化 - 最大行长度为 88 个字符 - 为所有公共函数使用类型提示 文件结构 - 大型类每个文件一个类 - 在模块中分组相关函数 - 为包组织使用 __init__.py 文件 - 在 tests/ 目录中分离测试 文档 - 为所有公共函数和类使用文档字符串 - 遵循 Google 或 NumPy 文档字符串风格 - 在文档字符串中包含类型信息 

框架特定指导原则

对于 Django 项目,创建 django-patterns.md steering 文件:

Django 开发指导原则 模型设计 - 使用描述性模型名称 - 为所有模型添加 __str__ 方法 - 对复杂查询使用模型管理器 - 遵循 Django 字段命名约定 视图结构 - 对复杂逻辑使用基于类的视图 - 对简单操作使用基于函数的视图 - 将业务逻辑保留在模型或服务中 - 使用适当的 HTTP 状态码 模板组织 - 有效使用模板继承 - 使用包含和标签保持模板 DRY - 使用有意义的模板名称 - 按应用程序组织模板 性能最佳实践 - 对查询使用 select_related 和 prefetch_related - 为频繁查询的字段实现数据库索引 - 对昂贵操作使用缓存 - 在开发中分析数据库查询 

对于数据科学项目,创建 data-science-patterns.md steering 文件:

数据科学开发指导原则 Notebook 组织 - 使用清晰的章节标题和 markdown 单元格 - 保持 notebook 专注于单一分析 - 将可重用代码导出到 Python 模块 - 包含数据源文档 数据处理 - 在管道早期验证数据质量 - 使用一致的列命名约定 - 清楚地记录数据转换 - 明确处理缺失值 模型开发 - 使用交叉验证进行模型评估 - 使用清晰的版本控制跟踪实验 - 记录模型假设和限制 - 实现适当的训练/验证/测试分割 代码组织 - 分离数据处理、建模和可视化 - 为参数使用配置文件 - 为长时间运行的进程实现日志记录 - 使用需求文件创建可重现的环境 

这些 steering 文件帮助 Kiro 生成遵循您团队特定约定和最佳实践的代码。

Agent Hooks

Kiro 的 Agent Hooks 可以自动化常见的 Python 开发任务:

  1. 导航到 Kiro 面板中的 Agent Hooks 部分
  2. 点击 + 按钮创建新的 hook
  3. 用自然语言定义 hook 工作流程

以下是一些 hook 示例:

测试生成 Hook

在保存 Python 文件时自动生成测试:

"创建一个在我保存新 Python 模块时生成 pytest 测试的 hook" 

依赖更新 Hook

保持依赖项最新:

"创建一个检查过时 pip 包并建议更新的 hook" 

代码检查 Hook

当保存 Python 文件时: 1. 在文件上运行 flake8 或 pylint 2. 报告任何风格或质量问题 3. 建议常见问题的修复方案 4. 如果缺少文档字符串则更新 

虚拟环境 Hook

当修改 requirements.txt 或 pyproject.toml 时: 1. 检查虚拟环境是否已激活 2. 自动安装或更新依赖项 3. 报告任何依赖冲突 4. 如果需要则更新 requirements-dev.txt 

使用 #docs 访问文档

Kiro 通过 #docs 引用系统提供对 Python 和流行框架文档的内置访问。这允许您快速将相关文档带入与 Kiro 的对话中。只需在聊天中输入 #docs 并从可用的文档源中选择,例如:

  • #Python - Python 语言文档
  • #Pytorch - PyTorch 框架文档
  • #PySide6 - 用于创建 GUI 的 Python 库

使用示例:

"#Python 如何有效使用上下文管理器?" "#Pytorch 如何添加自定义操作符?" "#PySide6 添加按钮的最佳方式是什么?" 

您也可以使用 #URL 引用特定的文档 URL:

"#URL https://docs.python.org/3/library/asyncio.html" 

调试问题

当您遇到问题时,Kiro 可以帮助诊断和修复:

  1. 内联聊天
    • 输入 Cmd/Ctrl + I 打开内联聊天。
    • 用自然语言要求 Kiro 帮助调试您的代码。
  2. 添加到聊天
    • 输入 Cmd/Ctrl + L 将当前文件添加到聊天。
    • 用自然语言要求 Kiro 帮助调试您的代码。
  3. 快速修复
    • 悬停在错误或警告上,然后选择 Quick fixAsk Kiro
    • Kiro 将自动将代码添加到聊天并开始调试。

资源

Kiro Python Guide

Read more

Flutter for OpenHarmony: Flutter 三方库 envied_generator 给鸿蒙应用的敏感 API Key 穿上“不可破解”的防护服(安全性加固利器)

Flutter for OpenHarmony: Flutter 三方库 envied_generator 给鸿蒙应用的敏感 API Key 穿上“不可破解”的防护服(安全性加固利器)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 应用开发时,我们不可避免地要集成各种三方服务(如高德地图 KEY、Firebase Secret、或是鸿蒙分布式服务的授权 Token)。如果你直接将这些字符串写在 Dart 代码里,任何初级黑客都能通过反编译你的 HAP 包,轻松获取这些敏感资产,导致巨大的商业损失。 envied_generator 配合 envied 就是专门解决这一安全痛点的。它不仅能将配置从 .env 文件读取到代码中,更关键的是它支持 Obfuscate(代码混淆)。它将你的 Key 转化为一串复杂的位运算逻辑,让反编译后的结果变得面目全非,为鸿蒙应用的资产安全筑起第一道堤坝。 一、配置加固工作流模型 该库通过代码生成,将明文配置文件转化为混淆后的 Dart 类。 .env (敏感明文) envied_generator

By Ne0inhk
Flutter for OpenHarmony:Flutter 三方库 pem — 在鸿蒙应用中优雅处理加密证书与密钥(适配鸿蒙 HarmonyOS Next ohos)

Flutter for OpenHarmony:Flutter 三方库 pem — 在鸿蒙应用中优雅处理加密证书与密钥(适配鸿蒙 HarmonyOS Next ohos)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net。 Flutter for OpenHarmony:Flutter 三方库 pem — 在鸿蒙应用中优雅处理加密证书与密钥(适配鸿蒙 HarmonyOS Next ohos) 在现代移动应用的网络安全、数字签名及加密传输中,证书的管理是基石。无论是对接 HTTPS 的私有根证书,还是在进行 RSA 加密时加载私钥,我们通常会接触到 PEM (Privacy-Enhanced Mail) 格式的文件——即那些以 -----BEGIN CERTIFICATE----- 开头的文本块。 在 Flutter for OpenHarmony 开发中,如何高效地解析和编码这些 Base64 文本数据?pem 库提供了一套标准的、纯 Dart 的工具包。今天,我们将实战如何利用它在鸿蒙项目里完成安全底座的构建。 一、

By Ne0inhk

Flutter 三方库 flutter_app_packager 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、自动化、全平台的桌面端安装包打包与工程分发引擎

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 flutter_app_packager 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、自动化、全平台的桌面端安装包打包与工程分发引擎 在鸿蒙(OpenHarmony)系统的桌面端适配(Ohos PC Mode)以及为鸿蒙应用构建配套的 PC 端管理工具(macOS/Windows/Linux 版辅助工具)时,如何通过一套 Dart 代码或命令行指令,即可瞬间将 Flutter 应用转化为原生的 .dmg, .exe 或 .deb 安装包?flutter_app_packager 为开发者提供了一套工业级的、基于 Dart 的自动化打包封装方案。本文将深入实战其在全平台分发工程中的应用。 前言 什么是

By Ne0inhk
做鸿蒙 App 一个月:10 个 ArkUI 大坑

做鸿蒙 App 一个月:10 个 ArkUI 大坑

子玥酱(掘金 / 知乎 / ZEEKLOG / 简书 同名) 大家好,我是子玥酱,一名长期深耕在一线的前端程序媛 👩‍💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚焦于业务型系统的工程化建设与长期维护。 我持续输出和沉淀前端领域的实战经验,日常关注并分享的技术方向包括前端工程化、小程序、React / RN、Flutter、跨端方案, 在复杂业务落地、组件抽象、性能优化以及多端协作方面积累了大量真实项目经验。 技术方向:前端 / 跨端 / 小程序 / 移动端工程化 内容平台:掘金、知乎、ZEEKLOG、简书 创作特点:实战导向、源码拆解、少空谈多落地 文章状态:长期稳定更新,大量原创输出 我的内容主要围绕 前端技术实战、真实业务踩坑总结、框架与方案选型思考、行业趋势解读 展开。文章不会停留在“API 怎么用”,而是更关注为什么这么设计、在什么场景下容易踩坑、

By Ne0inhk