本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Python 3.12 升级疑难解答
生效日期:2026年1月21日
概述
自 2026 年 1 月 21 日起,Amazon Braket 将所有笔记本
常见错误消息
SDK Python 版本不匹配错误
错误:
RuntimeError: Python version must match between local environment and container. Client is running Python 3.10 locally, but container uses Python 3.12.
原因:Braket SDK 检测到你的笔记本正在运行 Python 3.10,但是 Hybrid Job 容器正在运行 Python 3.12。
解决方案:要么将你的笔记本升级到 Python 3.12,要么固定到 Python 3.10 容器。
Cloudpickle 序列化错误
错误:
TypeError: code() argument 13 must be str, not int
原因:如果绕过 SDK 验证,则由于 Python 3.12 中的构造函数 CodeType 发生了变化,cloudpickle 将无法序列化 Python 3.10 和 3.12 之间的代码。
解决方案:确保您的笔记本和容器使用相同的 Python 版本。
Braket 托管笔记本电脑
如果你在 Python 3.10 上运行 Braket Notebook 实例并提交混合作业,则会遇到版本不匹配错误,因为任务容器现在默认使用 Python 3.12。
你有两个选择:
-
[推荐] 使用 Python 3.12 创建新的笔记本实例——参见 Braket 笔记本实例升级
-
固定到 Python 3.10 容器——参见 Hy brid J ob Decorator
Hybrid Job 装饰器
要使用@hybrid_job装饰器,您的环境的 Python 版本必须与容器的 Python 版本相匹配。
选项 1:使用 Python 3.12 容器(推荐)
如果您已将环境升级到 Python 3.12,它将使用最新标签(默认行为)。
选项 2:使用 Python 3.10 容器
如果你必须继续使用 Python 3.10,请在@hybrid_job装饰器中明确指定image_uri参数。
Python 3.10 容器标签:
|
映像名称 |
Tag |
|---|---|
|
Base |
1.0-cpu-py310-ubuntu22.04 |
|
CUDA-Q |
0.12.0-cpu-py310-0.12.0 |
|
PyTorch |
2.2.0-gpu-py310-cu121-ubuntu20.04 |
|
TensorFlow |
2.14.1-gpu-py310-cu118-ubuntu20.04 |
此示例使用 us-west-2 区域。
完整图片 URIs:
Base: 292282985366.dkr.ecr.us-west-2.amazonaws.com/amazon-braket-base-jobs:1.0-cpu-py310-ubuntu22.04 CUDA-Q: 292282985366.dkr.ecr.us-west-2.amazonaws.com/amazon-braket-cudaq-jobs:0.12.0-cpu-py310-0.12.0 PyTorch: 292282985366.dkr.ecr.us-west-2.amazonaws.com/amazon-braket-pytorch-jobs:2.2.0-gpu-py310-cu121-ubuntu20.04 TensorFlow: 292282985366.dkr.ecr.us-west-2.amazonaws.com/amazon-braket-tensorflow-jobs:2.14.1-gpu-py310-cu118-ubuntu20.04
示例:
from braket.jobs.hybrid_job import hybrid_job from braket.devices import Devices device_arn = Devices.Amazon.SV1 @hybrid_job( device=device_arn, image_uri="292282985366.dkr.ecr.us-west-2.amazonaws.com/amazon-braket-base-jobs:1.0-cpu-py310-ubuntu22.04" ) def my_job(): pass
注意
-
Python 3.10 容器将保持可用状态,但不会接收更新。
-
请参阅为您的算法脚本定义环境。
Bring-Your-Own-Container (BYOC)
如果你的 Dockerfile 使用带有最新标签的 Braket 托管镜像,那么在 2026 年 1 月 21 日之后进行重建将提取支持 Python 3.12 的镜像。
要继续使用支持 Python 3.10 的 Braket 托管镜像,请更新你的 Dockerfile:
之前(升级后获得 Python 3.12):
FROM 292282985366.dkr.ecr.us-west-2.amazonaws.com/amazon-braket-base-jobs:latest FROM 292282985366.dkr.ecr.us-west-2.amazonaws.com/amazon-braket-cudaq-jobs:latest FROM 292282985366.dkr.ecr.us-west-2.amazonaws.com/amazon-braket-tensorflow-jobs:latest FROM 292282985366.dkr.ecr.us-west-2.amazonaws.com/amazon-braket-pytorch-jobs:latest
之后(停留在 Python 3.10 上):
FROM 292282985366.dkr.ecr.us-west-2.amazonaws.com/amazon-braket-base-jobs:1.0-cpu-py310-ubuntu22.04 FROM 292282985366.dkr.ecr.us-west-2.amazonaws.com/amazon-braket-cudaq-jobs:0.12.0-cpu-py310-0.12.0 FROM 292282985366.dkr.ecr.us-west-2.amazonaws.com/amazon-braket-pytorch-jobs:2.2.0-gpu-py310-cu121-ubuntu20.04 FROM 292282985366.dkr.ecr.us-west-2.amazonaws.com/amazon-braket-tensorflow-jobs:2.14.1-gpu-py310-cu118-ubuntu20.04
Braket 笔记本实例升级
按照以下步骤升级到 Python 3.12:
重要
在删除笔记本实例之前,请确保已下载所有要保留的笔记本和文件。这些数据在删除后无法恢复。
-
将您创建或修改的所有 Notebook 下载到本地驱动器。
-
停用您的 Notebook 实例。
-
删除您的 Notebook 实例。
-
使用不同的名称创建一个新的笔记本实例。
-
将您的笔记本上传到新实例。