GitHub Actions:setup-python の「The version ... with architecture 'x64' was not found」
actions/setup-python は、ランナーの OS のバージョンとプロセッサーに合わせて作られた、できあがりの Python を入れます。まずランナーのツールキャッシュを見て、次に GitHub が actions/python-versions で公開しているビルドの一覧を見ます。Python をコンパイルしたり、ほかから取ってきたりはしないので、どちらにも頼んだバージョンが無ければ、そのステップは失敗します(「そのアーキテクチャーのバージョンが見つからない」)。
見え方
2026年10月29日、ubuntu-26.04 の公開の実行で、python-version: 3.9 を頼んだときです:
Version 3.9 was not found in the local cache ##[error]The version '3.9' with architecture 'x64' was not found for Ubuntu 26.04. The list of all available versions can be found here: https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json
- 1行目はいつも出る行で、setup-python がダウンロードしに行くときに出ます。ビルドがあれば、次の行はエラーでなく「Version ... is available for downloading」になります。
- エラーの最後には、setup-python から見えたシステムの名前が入ります。「Ubuntu 26.04」「macOS 26.6.2」、
windows-latestなら「Windows 2025」、windows-11-armなら「Windows Enterprise」(Windows の名前の4語目を取るため)、セルフホストランナーなら「Debian 13」のように出ます。 - ワークフローを何も変えていないのに出始めたなら、ジョブが Ubuntu 26.04 に当たったのだと思います。
ubuntu-latestは10月19日からそちらへ移っています(ubuntu-latest の Ubuntu 26.04 への移行)。
ランナーごとにあるバージョン
2026年11月3日の versions-manifest.json からです:
- Ubuntu 26.04(
ubuntu-26.04・ubuntu-26.04-arm、移ったあとのubuntu-latest):3.10 より前は無く、あるのも新しいパッチリリースだけです。3.10.20〜3.10.22、3.11.15〜3.11.18、3.12.13〜3.12.16、3.13.13〜3.13.18、3.14.6〜3.14.10。3.14.3のように新しめのバージョンでも、細かく固定するとここでは失敗します(hass-config #1150)。 - Ubuntu 24.04 と 22.04:3.8 は 3.8.12 から、3.9 は 3.9.12 から、3.10 は 3.10.4 から、いちばん新しいものまであります。Python 3.7 があるのは、この2つのうち 22.04 の x64 だけです。
- Windows(
windows-latest)と Apple シリコンの Mac(macos-latest・macos-15・macos-26):古いバージョンは 3.8.10・3.9.13・3.10.11・3.11.9・3.12.10 で止まっています。CPython がインストーラーを出した最後のリリースです。そのあとはソースコードだけで出るセキュリティリリースなので、3.12.12は Windows で(openHornedRat #463)、3.12.15は macOS で失敗します(PersonalClaw #4758)。Apple シリコンには 3.7 がまったくありません(dcc-mcp-core #2776)。 - Windows on Arm(
windows-11-arm):3.11 以降だけです(MaterialX #3110)。 - セルフホストランナー:Linux のビルドがあるのは Ubuntu と、x64 の RHEL 9 と 10 だけです。Debian では
3.xでさえ失敗します(Morrison-Lab/gha #1205)。
つまり 3.10・3.11・3.12 には、Ubuntu 26.04 と Windows の両方にあるパッチリリースが1つもありません。マトリックスのすべてで 3.12.10 に固定すると Ubuntu 26.04 で失敗し、3.12.13 に固定すると Windows と macOS で失敗します。
ランナーごとの一覧は自分でも出せます(platform は linux・darwin・win32、arch は x64 か arm64。macOS と Windows には platform_version がありません):
gh api repos/actions/python-versions/contents/versions-manifest.json \
-H "Accept: application/vnd.github.raw+json" \
--jq '.[] | .version as $v | .files[]
| select(.platform == "linux" and .platform_version == "26.04" and .arch == "x64")
| $v'
マイナーバージョンで頼む
"3.12.8" でなく "3.12" と書きます(blueprintx #945)。setup-python は、ランナーごとに 3.12 のいちばん新しいビルドを入れます。python-version を書いていないときに setup-python が読む .python-version のファイルも同じです。
- uses: actions/setup-python@v7
with:
python-version: "3.12"
引用符は付けたままにします。引用符が無いと YAML は 3.10 を数の 3.1 と読み、エラーには '3.1' と出ます(kg-microbe #1056)。
古いバージョンは、それがあるランナーで動かす
Python 3.8 と 3.9 は ubuntu-24.04 に、3.7 は ubuntu-22.04 と、macos-15-intel などの Intel の Mac のイメージにビルドがあります。ある公開のプロジェクトのマトリックスは、いまちょうどそうなっています(EliahKagan/version #40)。古いバージョンが1つだけなら、runs-on の式で足ります:
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
runs-on: ${{ matrix.python-version == '3.9' && 'ubuntu-24.04' || 'ubuntu-latest' }}
uv で入れる
uv は自分の Python のビルドをダウンロードし、そのビルドは Ubuntu のリリースに縛られません。一覧には、x64 の Linux・macOS・Windows 向けに 3.8.20 までの 3.8 と 3.9.25 までの 3.9 があり、3.7 はありません。11月1日、ubuntu-26.04 の公開のジョブがこの方法で 3.8 を入れ、cpython-3.8.20-linux-x86_64-gnu をダウンロードしていました(pyrs-yaml #696)。
- uses: astral-sh/setup-uv@v10.3.3
with:
python-version: "3.9"
activate-environment: true
- run: uv pip install -r requirements.txt
- run: python -m pytest
uv が作る環境には pip が無いので、pip install でなく uv pip install で入れます。
見分け方
- 「Version ... was not found in the local cache」のあとにダウンロードが続く:エラーではなく、ステップはそのまま進みます。
- エラーに「Free threaded versions are only available for Python 3.13.0 and later.」が付く:
3.12tのように、フリースレッドのビルドが無いバージョンでフリースレッド版を頼んでいます。 - setup-python は通り、あとのステップで、あるパッケージがその Python に対応しなくなったせいで失敗する:ランナーには問題が無く、直すのは依存関係のほうです。
失敗したジョブを IntelliJ IDEA から見るなら
Pipeline Inbox for GitHub Actions Workflows は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。すべてのリポジトリの実行を、ジョブ・ステップと一緒に IDE のツールウィンドウに並べるので、マトリックスのうちセットアップで落ちた1本が目立ちます。いまのブランチの実行はステータスバーに出ます。読むのは無料、失敗したジョブの再実行・キャンセル・ワークフローの実行・デプロイのレビューは Pro(月 US$1.50・30日の無料試用つき)です。
GitHub と GitHub Actions は GitHub, Inc. の商標、IntelliJ IDEA は JetBrains s.r.o. の商標、Python は Python Software Foundation の登録商標です。このページは GitHub, Inc.・JetBrains・Python Software Foundation のいずれとも提携しておらず、承認も受けていません。
ほかに:ubuntu-latest の Ubuntu 26.04 への移行 · 「Unable to resolve action」 · 「Node.js 20 is deprecated」の警告 · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English