

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Python 3.12 のアップグレードのトラブルシューティング
<a name="braket-troubleshooting-python312"></a>

**発効日: 2026 **年 1 月 21 日

## 概要:
<a name="braket-troubleshooting-python312-overview"></a>

2026 年 1 月 21 日以降、Amazon Braket はすべての[ノートブックインスタンス](https://github.com/amazon-braket/amazon-braket-examples)と[マネージドコンテナイメージ](https://github.com/amazon-braket/amazon-braket-containers/tree/main) (Base、CUDA-Q、TensorFlow、PyTorch) の Python ランタイムを 3.10 から 3.12 にアップグレードします。このガイドでは、一般的な互換性の問題の解決策を示します。

**Topics**
+ [概要:](#braket-troubleshooting-python312-overview)
+ [一般的なエラーメッセージ](#braket-troubleshooting-python312-errors)
+ [Braket マネージドノートブック](#braket-troubleshooting-python312-notebooks)
+ [ハイブリッドジョブデコレータ](#braket-troubleshooting-python312-hybrid-job)
+ [Bring-Your-Own-Container (BYOC)](#braket-troubleshooting-python312-byoc)
+ [Braket ノートブックインスタンスのアップグレード](#braket-troubleshooting-python312-notebook-upgrade)

## 一般的なエラーメッセージ
<a name="braket-troubleshooting-python312-errors"></a>

### SDK Python バージョンの不一致エラー
<a name="braket-troubleshooting-python312-version-mismatch"></a>

**エラー**:

```
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 を実行していることを検出しましたが、ハイブリッドジョブコンテナは Python 3.12 を実行しています。

**解決策:** [ノートブックを Python 3.12 にアップグレードするか、Python 3.10 コンテナに固定します](#braket-troubleshooting-python312-notebook-upgrade)。 [オプション 2: Python 3.10 コンテナを使用する](#braket-troubleshooting-python312-option2)

### Cloudpickle シリアル化エラー
<a name="braket-troubleshooting-python312-cloudpickle"></a>

**エラー**:

```
TypeError: code() argument 13 must be str, not int
```

**原因:** SDK 検証をバイパスすると、Python 3.12 の CodeType コンストラクタの変更により、cloudpickle は Python 3.10 と 3.12 の間でコードをシリアル化できません。

**解決策:** ノートブックとコンテナが同じ Python バージョンを使用していることを確認します。

## Braket マネージドノートブック
<a name="braket-troubleshooting-python312-notebooks"></a>

Python 3.10 で Braket ノートブックインスタンスを実行し、ハイブリッドジョブを送信すると、ジョブコンテナがデフォルトで Python 3.12 を使用するようになったため、バージョン不一致エラーが発生します。

これには 2 つのオプションがあります。

1. [推奨] Python 3.12 で新しいノートブックインスタンスを作成する - [Braket Notebook Instance Upgrade](#braket-troubleshooting-python312-notebook-upgrade) を参照してください。

1. Python 3.10 コンテナへのピン留め - [「ハイブリッドジョブデコレータ](#braket-troubleshooting-python312-hybrid-job)」を参照してください。

## ハイブリッドジョブデコレータ
<a name="braket-troubleshooting-python312-hybrid-job"></a>

`@hybrid_job` デコレータを使用するには、環境の Python バージョンがコンテナの Python バージョンと一致する必要があります。

### オプション 1: Python 3.12 コンテナを使用する (推奨)
<a name="braket-troubleshooting-python312-option1"></a>

環境を Python 3.12 にアップグレードした場合、最新のタグ (デフォルトの動作) が使用されます。

### オプション 2: Python 3.10 コンテナを使用する
<a name="braket-troubleshooting-python312-option2"></a>

Python 3.10 を維持する必要がある場合は、デ`@hybrid_job`コレータで `image_uri`パラメータを明示的に指定します。

**Python 3.10 コンテナタグ:**


|  イメージ名  |  タグ  | 
| --- | --- | 
| 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 コンテナは引き続き使用できますが、更新は受信されません。
[「アルゴリズムスクリプトの環境を定義する](https://docs.aws.amazon.com/braket/latest/developerguide/braket-jobs-script-environment.html)」を参照してください。

## Bring-Your-Own-Container (BYOC)
<a name="braket-troubleshooting-python312-byoc"></a>

Dockerfile が最新のタグを持つ Braket マネージドイメージを使用している場合、2026 年 1 月 21 日以降に再構築すると、Python 3.12 でサポートされているイメージがプルされます。

Python 3.10 でサポートされている Braket マネージドイメージを維持するには、Dockerfile を更新します。

**Before (アップグレード後に 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
```

**After (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 ノートブックインスタンスのアップグレード
<a name="braket-troubleshooting-python312-notebook-upgrade"></a>

Python 3.12 にアップグレードするには、次の手順に従います。

**重要**  
ノートブックインスタンスを削除する前に、保持するすべてのノートブックとファイルをダウンロードしていることを確認してください。削除後にこのデータを復元することはできません。

1. 作成または変更したノートブックをローカルドライブにダウンロードします。

1. ノートブックインスタンスを停止します。

1. ノートブックインスタンスを削除します。

1. 別の名前で新しいノートブックインスタンスを作成します。

1. ノートブックを新しいインスタンスにアップロードします。