SuperAPI AI 工具集

standalone-python-scripts

编程与开发

查看项目

更新于 11-02 16:14

技能介绍

本技能用于指导编写可独立执行的单文件 Python 脚本,核心是 PEP 723 内联元数据加 uv 依赖管理。

适用场景 适合创建单文件、无 pyproject.toml 的独立脚本,例如命令行工具、实用脚本、带外部依赖的快速自动化或一次性脚本。不适用于包含多模块、包结构或 pyproject.toml/setup.py 的大型 Python 项目。

主要做法

  1. 版本支持检查:设置 requires-python 前,确认目标版本未结束生命周期(EOL),且距离 EOL 至少一年,可参考 Python 官方版本状态页;仅当用户明确要求时才面向更旧版本。
  2. 最小化依赖:只添加能明显节省时间或提供必要功能的外部包,合理情况下优先使用标准库。
  3. 添加 PEP 723 内联元数据:在脚本顶部以 # /// script 块声明 requires-python 与 dependencies,并固定最低版本。
  4. 使用 uv shebang:当脚本含非标准库依赖时,首行使用 #!/usr/bin/env -S uv run --script,从而可直接以 ./script.py 执行。
  5. 参数解析优先使用 Click;日期时间处理优先使用 Arrow。
  6. 创建后运行 chmod +x script.py 赋予执行权限。

示例脚本展示了 shebang、PEP 723 元数据块、Click 命令与选项、Arrow 日期格式化,以及 if name == "main" 入口。

常见陷阱 避免过度工程化:琐碎任务不必引入依赖,datetime 够用就不加 Arrow,argparse 够用就不加 Click。缺少 shebang 会导致无法直接执行;元数据块必须位于顶部并严格符合 PEP 723 格式;忘记 chmod 会缺少执行权限;未固定最低版本可能因依赖解析产生意外差异。

验证方式 创建后可用 uv run --script script.py --help 检查元数据块是否有效,再直接运行 ./script.py,确认依赖安装与脚本行为符合预期。检查清单包括:Python 版本是否仍受支持、是否有 shebang、PEP 723 元数据块是否存在且有效、依赖是否最小且有必要理由、脚本是否已赋予执行权限。