pyenvを使ってpythonのバージョン管理をする。【windows10】
pythonが最新版でも、他のライブラリとかが対応していないことが常。
はろー、yukiです。
今回はpyenvを使い、pythonのバージョン管理をしようと思います。
環境はwindows10です。
さっそく見ていきましょう。
1. pipを使ってpyenvのインストール
下記のコマンドを実行します(powershellの場合)。
pip install pyenv-win --target "$HOME\.pyenv"
それ以外の場合は公式を参照してください。
2. PYENVとPYENV_HOMEを「ユーザの環境変数」に追加
下記のコマンドを実行します。
[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User") [System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
コマンドが難しいという方は、「システムのプロパティ > 環境変数 > <ユーザ名>のユーザー環境変数」の「新規」で追加します。
3. コマンドのパスを通す
下記のコマンドを実行します。
[System.Environment]::SetEnvironmentVariable('path', $HOME + "\.pyenv\pyenv-win\bin;" + $HOME + "\.pyenv\pyenv-win\shims;" + $env:Path,"User")
ここまでを完了すると、pyenv version
が実行できると思います。
4. pyenvのアップデート
pyenv update
を実行します。
※アップデートをしないと、最新版のpythonがインストール対象になっていない場合がある
5. 必要なバージョンのpythonをインストール
pyenv install -l
でインストールできるバージョン一覧を取得します。
上記で取得したバージョンをコピーし、pyenv install <version>
の<version>
の部分に貼り付けて実行します。
6. 実行環境ごとにバージョンを使い分ける(全体)
僕の場合、全体的には最新版を使い、とある開発環境ではバージョンの古いものを使用しています。
まず、全体の設定をします(コマンドの実行場所はどこでも可)。
pyenv global <version>
で、<version>
はインストールした(全体で使いたい)ものを指定します。
その後、pyenv rehash
を実行します。
※\.pyenv\pyenv-win\shims
フォルダ内にファイルが生成される
※これを実行しないと反映されない
python --version
を実行し、pythonが上記のバージョンになっていることを確認します。
7. 実行環境ごとにバージョンを使い分ける(開発環境)
開発環境のあるフォルダへ移動します。
開発環境で必要なバージョンをインストールしておきます。
pyenv local <version>
で、<version>
はインストールしたものを指定します。
その後、pyenv rehash
を実行します。
※\.pyenv\pyenv-win\shims
フォルダ内に上記バージョンのファイルが追加される
※これを実行しないと反映されない(2回目)
python --version
を実行し、開発環境でのpythonのバージョンが上記になっていることを確認します。
※ディレクトリを一階層移動し、バージョン確認すると、最初に設定した(global
)バージョンになっている
ちなみに、現在のディレクトリで、設定されているpythonがどのバージョンか分からない場合、pyenv versions
を実行します。
インストールしたpyhonのバージョンが一覧で表示され、設定されているものに* 3.9.1 (set by 略
が付されています。
これで開発環境は整いましたね。
以上。