はじめに
先日pyenvのセットアップをやり直していたところ、表題の問題に遭遇し解決まで少し時間を要したため、ここに書き留めておきます。
注意事項
筆者はプロではありません。書かれている内容について誤りがないように注意は払っていますが、正しさの責任は取れませんので予めご了承ください。
実行時期
2023年11月
環境
Windows11
1. 状態の確認
Windows PowerShellを起動し、以下のコマンドを実行してください。
$Env:PATH
これで環境変数「PATH」の内容が順に表示されるはずです。基本的には「システム環境変数」→「ユーザー環境変数」の順に表示されるはずです。
ここで、以下の2点を確認してください。
なお、PCのユーザー名はuser、「FATAL: Found ...」で表示された「...」の部分のパス名を仮に「\to\error\path」とします。
- 「C:\Users\user.pyenv\pyenv-win\shims」または「%PYENV%\shims」と「C:\Users\user.pyenv\pyenv-win\bin」または「%PYENV%\bin」がそれぞれ「\to\error\pathよりも先に書かれていること
- 「C:\Users\user.pyenv\pyenv-win\shims」または「%PYENV%\shims」と「C:\Users\user.pyenv\pyenv-win\bin」または「%PYENV%\bin」がそれぞれ2回以上書かれていないこと
上記の条件を確認し、特に2.に違反している場合は2回目以降に登場する同じパスを削除して、それが反映されているか再度$Env:PATH
で確認してください。
ここで、上の確認においてPATHの中に「%PYENV%」が一度も登場していない(「C:\Users\user.pyenv\pyenv-win\…」の形で書かれている)のに表題の問題が生じている場合は、申し訳ありませんがこの記事の解決法は使えません。
そうでなはなく、「%PYENV%」がPATHの中に登場した方は、次に進んでください。
2. 対処法
- Windows PowerShellを起動し、以下のコマンドを実行してください。
$Env:PYENV
- 表示されたパス(デフォルトでインストールしていれば「C:\Users\user.pyenv\pyenv-win」のようなパスが表示されるはず)をコピーしてください。
- 環境変数の設定画面を開き、全ての「%PYENV%」を上でコピーした文字列に置き換えてください。例えば「%PYENV%\bin」は「C:\Users\user.pyenv\pyenv-win\bin」のようになります。
- 「OK」ボタンで環境変数の設定を閉じて、Windows PowerShellを再度新しく立ち上げ直し、
pyenv version
を実行するとエラーが解決されているはずです。解決していないときは$Env:PATH
を再度実行し、変更が反映されているか確認しましょう。反映されない場合はPCの再起動を実行するのも一つの手です。