PC を新しくして、Python の環境を作ろうと思った今日この頃です。以前の PC では anaconda つかった環境構築のブログを書きましたが
今回は pyenv 使ってみようと思いました♪ 理由は使ったことなかったからだけです。
このブログを書いたとき (7月にセットアップしたとき下書きして放置してた...) は Windows 10 May 2020 Update (Version 2004) がインストールできなかったときなのであえて WSL2 はインストールせず普通にコマンドプロンプトでセットアップしました。
インストール方法はいくつかあります。
- pip: pip をすでにインストール済みの人向け
- zip ファイルをダウンロード
- Git: git clone する
- Chocolatey
このブログを書いた時点では、PC を買ったばかりで Python が入ってないので、git clone していきます。ちなみに私がインストールしたバージョンは、Pyenv の 2.64.2 です。
pyenv のセットアップ
インストール
コマンドプロンプトで行きましょうか。コマンドプロンプトを開いて以下のコマンドを実行します。
git clone https://github.com/pyenv-win/pyenv-win.git %USERPROFILE%/.pyenv
環境変数の追加
環境変数の以下を追加します。
環境変数が不安がある方は事前にバックアップしておきましょう(自動でされてるってのはあるけど)
管理者権限で PowerShell を開いて以下を実行します。PYENV
って環境変数が追加されます。
[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
次は、これ。path
に pyenv で使う環境変数を二つ追加しています。
[System.Environment]::SetEnvironmentVariable('path', $HOME + "\.pyenv\pyenv-win\bin;" + $HOME + "\.pyenv\pyenv-win\shims;" + $env:Path,"User")
注意点として、コマンドではなく手で path を追加するときは
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
の値より上にセットする必要があります。こいつは Microsoft Store の Python の環境変数にもなるので (←Store から Python をインストールしている場合ですが)、こいつより下にいると Microsoft Store の Python が先に読み込まれてしまうからです。コマンドでやったら一番上に来るので心配ないです。ここまで来ての余談ですが、こちらの公式ブログ を読んで、Store から Python をインストールして pip で pyenv-win を管理したほうが最適なのかな?と思ったりしました。
後は環境変数が認識されているか確認しましょう。
今設定した環境変数を読み込ませるために、既存で開いてるコマンドプロンプトは閉じて、新たにコマンドプロンプトを起動します。
pyenv --version
って打って認識されればOKです。
認識されたら、一度以下を実行します。
pyenv rehash
pyenv の基本コマンドチートシート
よく使いそうなコマンドを書いておきます。
何かうまくいかない場合は...
まず困ったらなコマンドを書いておきます。どんな時使うかはブログの最後に書いてます。
pyenv rehash
サポートしてる Python のバージョンの一覧を見る
pyenv install -l
特定のバージョンをインストールする
v3.6.7 をインストールすならこんな感じ。
pyenv install 3.6.7
環境に設定できるバージョンの一覧を確認
インストールした一覧が表示されます。
pyenv versions
環境の設定する
実際に使う環境としてセットします。いくつかのオプションがあります。
デフォルト設定として使うには global
をつけます。
pyenv global 3.8.2
特定のフォルダに対してバージョンを変えるには、local
を付けます。
pyenv local 3.6.7
現在使ってる pyenv のバージョンを確認する
これで確認できます。
pyenv version
環境ができたので、次回は VS Code での Python 環境のセットアップをしましょう。
pyenv をアップデートする
ここら辺を読んでやればよいようです。今インストールしたばかりでまだ試す機会が訪れてないので、アップデートする機会があったらこの部分の記事を更新するかもしれません♪
Python の動作確認
正常に設定ができていると、コマンドで python
って打てば、以下のように Python をインタラクティブに実行できるはずです。
動かねー!(私の経験談)
Python
って打って Microsoft Store が立ち上がってくるようだと環境変数が認識されていないとか %PYENV%\shims が空とかです。
私はこの状況で悩まされたので、pyenv-win はもう使いたくねーな、WSL で pyenv か今まで同様に Anaconda やなと感じてます。
pyenv versions
や pyenv version
のコマンドで設定した通りの状況になってるか見ましょう。私の場合 pyenv versions
や pyenv version
で設定されているものが異なっている( pyenv versions に存在しないものが pyenv version で設定されてる不思議な事象になってました。)
ということで困ったときはこのコマンドを打ちます。
pyenv rehash
%PYENV%\shims のフォルダが正しい状態になります。
だいたいはこれで解決するんでしょうけど、私の場合はなぜか動かない....環境変数の設定もおかしくない。
ということで、システム環境変数にも同様の環境変数をぶっこんだら普通に動きました。 再起動しても大丈夫だったのでこれでいいか。
なんか納得できなかったので上記の対応で普通に動くようになった後、環境変数の設定で色んなこと試しましたがだめでしたね...GitHub の README に書いてある通りに動かして動かなくて釈然とせず。