sam initコマンド実行時のエラーと解消方法の一例(実行可能なGitが見つからない)

AWS SAM CLIにおいて、sam initコマンド実行時にエラーが出ました。
そのエラーの内容と原因、実行した解決策を記載します。

AWS SAM CLIとは

AWS SAM CLIとは、AWS SAMを使用したサーバレスアプリケーションの作成や管理を、
容易に実現するためのコマンドラインツールです。

AWS SAM:その方法は? AWS SAM 仕組み – AWS Serverless Application Model (amazon.com)

AWS SAM CLI:AWS SAMCLI – AWS Serverless Application Model (amazon.com)

前提条件

前提条件は、下記です。

・OS: Windows 11
・SAM CLI, version: 1. 125. 0

エラーの内容

下記のエラーが出ました。

Unable to find executable git
Traceback (most recent call last):
  File "C:hogehoge\git_repo.py",
line 89, in git_executable
    with subprocess.Popen([executable], stdout=subprocess.PIPE,
stderr=subprocess.PIPE):

1行目を和訳すると、「実行可能なGitを見つけることができませんでした」、ということです。
何が原因なのでしょうか。

エラーの原因

上記のエラーメッセージは、sam init コマンドを実行する際にgitが見つからず、
AWS SAM CLIがリポジトリをクローン(※)できないことを示しています。

(※)用語解説
リポジトリ:ファイルやフォルダなどの情報を保存するストレージ
クローン:ローカル環境に複製すること
リポジトリをクローン:リポジトリのファイルや履歴を自分の環境にコピーして使うこと

考えられる原因は以下の2つです。

①Gitがインストールされていない
②(Gitがインストール済みの場合)GitがPATHに設定されていない

原因に対する解決策

上記の原因に対する解決策は以下です。

①Gitがインストールされていない→Gitをインストールする
そもそもGitがインストールされていない場合は、
Git公式サイトからGit for Windowsをダウンロードします。

今回は、Gitはインストール済みのため、詳細は割愛しますが
以下ページの”Download”ボタンの押下でダウンロード、インストールを進められます。

Git for Windows

GitがPATHに設定されていない→PATHに追加する

すでにGitをインストール済みであれば、gitがコマンドラインで認識されていない可能性があります。
以下のコマンドで、gitが認識されているかを確認します。

git --version

もし上記でエラーが出るのであれば、PATHへの追加を試してみましょう。

まず、「スタート」メニューで「環境変数」と検索し、「システム環境変数の編集」を選びます。

「システムのプロパティ」→「詳細設定」セクションの「環境変数」をクリックします。

「システム環境変数」セクション内の「Path」を選択して「編集」をクリックします。

「新規」ボタンをクリックし、Gitのインストールパスを追加します。
(例:C:\Program Files\Git\bin\)

コマンドプロンプトまたはPowerShellを再起動し、git –versionが正しく動作することを確認します。
これで、無事にsam initコマンドを実行できるはずです。

PS C:\Users\hogehoge> git --version
git version 2.47.0.windows.1

余談:なぜこの事象が起きたのか

なぜこの事象が起きたかと言いますと、私のミスによるものです。
Git for Windowsのインストール過程で、推奨されている真ん中ではなく、
Use Git from Git Bash only (Git BashでのみGitを使う)を選択したからです。

また、Windows 10以降をお使いであれば、ロングパスを有効にする必要があります。
英語になってしまいますが、下記ページをご参照ください。

Maximum Path Length Limitation – Win32 apps | Microsoft Learn

なおこの場合は、上述のエラーメッセージとは違った文言が出てきます。