雪ん子パースペクティヴ

読むとちょっとタメになるエントリー。コメントあると嬉しいです。

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 略が付されています。



これで開発環境は整いましたね。


以上。




Googleアドセンス