Claude API Python 示例代码:10 分钟跑通第一个程序
跑通第一个 Claude API Python 程序只要三步:用 pip install anthropic 装好官方 SDK,把 API Key 设成环境变量,再调用 Messages API 发一条消息。下面是最小可运行示例,复制即可跑。
第一步:安装 anthropic 官方 SDK
建议 Python 3.8 及以上版本,先建一个虚拟环境再安装,避免污染全局包:
python -m venv venv
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activate
pip install anthropic
SDK 会自动带上 httpx 等依赖。安装相关细节和镜像源配置,可参考 Anthropic Python SDK 安装与配置完整教程。
第二步:配置 API Key
API Key 不要硬编码在代码里,用环境变量传入。SDK 默认读取 ANTHROPIC_API_KEY:
# Windows PowerShell
$env:ANTHROPIC_API_KEY = "sk-ant-你的密钥"
# macOS / Linux
export ANTHROPIC_API_KEY="sk-ant-你的密钥"
还没有 Key 的话,先看 Claude API Key 怎么获取?2026 最新申请流程。注册到首次请求的整体流程可参考 Claude API 怎么调用?从注册到第一次请求完整教程。
第三步:调用 Messages API 拿到第一条回复
Claude 的核心接口是 Messages API(POST /v1/messages)。用官方 SDK 时不用手写鉴权头,SDK 会自动带上 x-api-key 和 anthropic-version。新建 hello_claude.py:
from anthropic import Anthropic
client = Anthropic() # 自动读取 ANTHROPIC_API_KEY
message = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{"role": "user", "content": "用一句话解释什么是 RESTful API"}
],
)
print(message.content[0].text)
运行 python hello_claude.py,几秒后终端就会打印出模型回复。这就是完整的第一个程序。
关键参数说明
上面用到的几个参数,是几乎每次调用都要写的:
| 参数 | 作用 | 说明 |
|---|---|---|
model | 选择模型 | 当前主力为 claude-opus-4-8(最强)、claude-sonnet-4-6(均衡)、claude-haiku-4-5(快且省) |
max_tokens | 限制输出长度 | 必填,按生成 token 数计费,写过大无意义 |
messages | 对话内容 | 数组,每项含 role(user/assistant)和 content |
system | 系统提示词 | 可选,作为顶层参数传入,控制模型整体行为 |
temperature | 随机性 | 0–1,越低越确定,写代码类任务建议调低 |
模型怎么选可看 Claude 模型怎么选?Opus / Sonnet / Haiku 选型指南。Messages API 的全部参数(含 stop_sequences、top_p 等)详见 Claude Messages API 全部参数说明(含代码示例)。
加上系统提示词
把 system 作为顶层参数传入,可以稳定地控制语气和角色,而不污染对话历史:
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system="你是一名严谨的 Python 后端工程师,回答尽量给出可运行代码。",
messages=[
{"role": "user", "content": "写一个读取 JSON 文件并打印键名的函数"}
],
)
print(message.content[0].text)
流式输出:让回复边生成边显示
长回复如果等全部生成完再返回,体验很差。用 stream 方法可以基于 SSE 逐字接收:
with client.messages.stream(
model="claude-opus-4-8",
max_tokens=1024,
messages=[{"role": "user", "content": "讲讲 Python 装饰器的原理"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
SSE 事件结构和手写解析的细节,见 Claude API 流式输出 Python 实现教程(SSE 详解)。
进阶:让模型调用你的函数(Tool Use)
如果想让 Claude 调用外部工具或你自己的 API,需要在请求里声明 tools,模型会返回 tool_use 块告诉你该调哪个函数、传什么参数:
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
tools=[{
"name": "get_weather",
"description": "查询指定城市的当前天气",
"input_schema": {
"type": "object",
"properties": {"city": {"type": "string", "description": "城市名"}},
"required": ["city"],
},
}],
messages=[{"role": "user", "content": "北京今天天气怎么样?"}],
)
print(response.stop_reason) # 可能为 "tool_use"
完整的工具调用回传流程参见 Claude Tool Use 工具调用怎么用?完整代码实战 和 Claude 函数调用示例:让模型调用你的 API。
常见报错速查
- 401 认证失败:Key 错误、过期,或环境变量没生效。排查见 Claude API 报错 401 怎么解决?认证失败排查指南。
- 429 限流:请求过快或额度用尽,需要重试与退避。方案见 Claude API 429 限流报错怎么办?3 种重试方案。
- max_tokens 报错:忘记传该参数或值超过模型上限,补上即可。
关于计费,输入输出 token 分别计价,具体单价以 Anthropic 官网为准,可参考 Claude API Token 怎么计算?附在线估算方法 提前估算成本。
常见问题
Python 版本和 SDK 版本有要求吗?
建议 Python 3.8 及以上,SDK 用 pip install -U anthropic 升级到最新版即可。老版本可能不支持 messages.stream 等较新方法,遇到 AttributeError 优先升级 SDK。
不用环境变量,能直接在代码里传 Key 吗?
可以:Anthropic(api_key="sk-ant-...")。但强烈不建议把密钥写进源码或提交到 Git 仓库,生产环境应使用环境变量或密钥管理服务。
除了 Python,其他语言怎么调用?
Anthropic 官方提供 Node.js SDK(@anthropic-ai/sdk),用法类似,详见 Claude API Node.js 调用示例:从安装到流式输出。如果你想在命令行里直接和模型协作写代码,也可以试试官方命令行工具 Claude Code。