Claude学院

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-keyanthropic-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_sequencestop_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

常见报错速查

关于计费,输入输出 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。

Claude API 开发