如果你正在寻找一份2026 年可以直接跑通的 Claude API Python 教程,这篇文章就是为你准备的。本文基于 Claude Ai中文官网 最新文档整理,覆盖从环境搭建、发送第一条消息,到流式输出、多轮对话、异常处理的完整流程,并在文末附上开发者社区反馈最集中的 6 大常见问题与解决方案。

适读人群:有 Python 基础、想快速接入 Claude API 的开发者。预计阅读 + 实操时间:10 分钟。

一、准备工作

1.1 获取 API Key

前往 Anthropic 官方平台注册账号并创建 API Key。Key 的格式为 sk-ant-api03-...,创建后请立即妥善保存,平台不会再次显示完整 Key。

注意

不要将 API Key 硬编码写入代码文件或上传至 GitHub。推荐通过环境变量或 .env 文件管理密钥。

1.2 Python 环境要求

Anthropic 官方 SDK 要求 Python 3.8 及以上版本。建议使用虚拟环境隔离依赖:

python -m venv claude-env
source claude-env/bin/activate   # Windows: claude-env\Scripts\activate

1.3 安装 SDK

pip install anthropic

安装完成后验证版本:

python -c "import anthropic; print(anthropic.__version__)"

二、发送第一条消息

以下是最简洁的完整示例,展示如何向 Claude Sonnet 4.6 发送一条消息并获取回复:

import anthropic
import os

client = anthropic.Anthropic(
    api_key=os.environ.get("ANTHROPIC_API_KEY")
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "你好,请用一句话介绍 Claude API。"}
    ]
)

print(message.content[0].text)
运行成功标志

控制台输出 Claude 的文字回复,说明 API Key 配置正确、网络连通、SDK 调用成功。

三、使用 System Prompt 设定角色

在生产环境中,几乎每个应用都需要通过 system 参数为 Claude 指定角色和行为规则。system 参数独立于 messages 列表,不计入对话轮次:

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system="你是一位专业的 Python 代码审查助手,回答简洁、准确,使用中文。",
    messages=[
        {"role": "user", "content": "帮我审查这段代码是否有潜在的安全问题:\n\nquery = 'SELECT * FROM users WHERE id=' + user_input"}
    ]
)

print(message.content[0].text)

四、流式输出(Streaming)

对于需要实时显示回复的场景(如聊天界面),使用流式输出可以显著改善用户体验,避免等待完整响应的延迟感:

with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "请写一首关于 Python 的短诗。"}
    ]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
print()  # 换行
说明

stream.text_stream 是一个生成器,逐 Token 产出文本。flush=True 确保内容实时输出到终端,而不是缓冲后批量打印。

五、多轮对话(维护上下文)

Claude API 本身是无状态的——每次请求都是独立的。要实现多轮对话,需要在客户端维护历史消息列表,并在每次请求时完整传入:

conversation_history = []

def chat(user_message: str) -> str:
    conversation_history.append({
        "role": "user",
        "content": user_message
    })

    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=1024,
        system="你是一个友好的 AI 助手,使用中文回复。",
        messages=conversation_history
    )

    assistant_reply = response.content[0].text

    conversation_history.append({
        "role": "assistant",
        "content": assistant_reply
    })

    return assistant_reply

# 示例对话
print(chat("我叫小明,我是一名 Python 开发者。"))
print(chat("你还记得我的名字吗?"))
print(chat("我的职业是什么?"))
性能提示

随着对话轮次增加,conversation_history 会持续增长,输入 Token 也会线性增加。生产环境建议设置最大保留轮次(如最近 10 轮),或定期对历史进行摘要压缩。

六、错误处理与重试机制

健壮的生产代码必须处理 API 调用失败的情况。Anthropic SDK 提供了结构化的异常类型,可以针对不同错误做不同处理:

import anthropic
import time

def call_claude_with_retry(prompt: str, max_retries: int = 3) -> str:
    client = anthropic.Anthropic()

    for attempt in range(max_retries):
        try:
            message = client.messages.create(
                model="claude-sonnet-4-6",
                max_tokens=1024,
                messages=[{"role": "user", "content": prompt}]
            )
            return message.content[0].text

        except anthropic.RateLimitError:
            wait_time = 2 ** attempt  # 指数退避
            print(f"触发速率限制,{wait_time} 秒后重试…")
            time.sleep(wait_time)

        except anthropic.AuthenticationError:
            raise ValueError("API Key 无效,请检查环境变量配置。")

        except anthropic.APIConnectionError:
            print(f"网络连接失败,第 {attempt + 1} 次重试…")
            time.sleep(2)

        except anthropic.APIStatusError as e:
            print(f"API 错误 {e.status_code}: {e.message}")
            break

    return ""

七、常用模型对比(2026 版)

模型 适用场景 上下文窗口 特点
claude-opus-4-6 复杂推理、长文档分析 200K tokens 能力最强,成本较高
claude-sonnet-4-6 日常开发、生产部署 200K tokens 性能与成本均衡,推荐首选
claude-haiku-4-5 高频低延迟场景 200K tokens 响应最快,成本最低

模型字符串以 Claude Ai中文官网 官方文档为准,建议定期核对,避免因版本更新导致调用失败。

八、附:6 大常见坑 & 解决方案

坑 1:AuthenticationError

API Key 未正确加载,os.environ.get() 返回 None

解决方案

运行前执行 export ANTHROPIC_API_KEY="sk-ant-...",或使用 python-dotenv 加载 .env 文件。

坑 2:模型名称错误

使用了旧版或拼写错误的模型 ID,如 claude-3-sonnet,导致 404 报错。

解决方案

以 Claude Ai中文官网 或官方 API 文档的当前模型列表为准,使用完整准确的模型字符串。

坑 3:max_tokens 未设置

遗漏 max_tokens 参数,SDK 会抛出参数缺失异常(该参数为必填项)。

解决方案

始终显式传入 max_tokens,根据场景合理设置,避免使用过大值造成浪费。

坑 4:messages 角色顺序错误

messages 列表中出现连续两条相同 role 的消息,或首条不是 user,导致 API 报错。

解决方案

保持 user → assistant → user → assistant 的严格交替顺序,首条必须为 user

坑 5:流式输出乱序

在异步环境中混用同步流式 API,导致输出顺序混乱或阻塞事件循环。

解决方案

在 async 函数中使用 client.messages.stream() 的异步版本 async with client.messages.stream(...)

坑 6:上下文超出限制

多轮对话历史不断累积,超出模型上下文窗口上限,引发 context_length_exceeded 错误。

解决方案

在发送前统计 Token 数量(可用 client.beta.messages.count_tokens()),超出阈值时启用历史压缩或截断策略。

总结

通过本文的 6 个代码示例,你已经掌握了 Claude API Python 接入的完整链路:环境配置、基础调用、角色设定、流式输出、多轮对话和错误处理。这些示例均可直接在 2026 年的 Anthropic SDK 版本下运行。

如需进一步了解 Prompt Caching、Batch API、Tool Use(函数调用)等高级功能,建议访问 Claude Ai中文官网 查阅最新中文文档,获取持续更新的接入指南与最佳实践。

Claude Ai中文官网 持续整理 Anthropic 官方文档的中文版本,是国内开发者接入 Claude API 的重要参考资源。