Pyenvとは
Pyenvは、複数のPythonバージョンを簡単に管理できるツール。開発プロジェクトごとに異なるPythonバージョンが必要な場合、Pyenvを利用することで容易にバージョンを切り替えることができる。これにより、プロジェクト間の依存関係や互換性の問題を解消することができる。
Pyenvのインストール
Pyenvをインストールする方法は、PowerShellを使用する場合とChocolatey(choco)を使用する場合の2通りがある。
PowerShellを用いた場合
PowerShellを用いてPyenvをインストールする手順は以下の通り。
pip install pyenv-win --target $HOME\\.pyenv
pyenv
を正しく機能させるためには、環境変数に以下のパスを追加する必要がある。
- %USERPROFILE%\.pyenv\pyenv-win\bin
- %USERPROFILE%\.pyenv\pyenv-win\shims
環境変数を設定した後、PowerShellやコマンドプロンプトを再起動する。
Chocolateyを用いた場合
Chocolatey(choco)はWindows向けのパッケージマネージャーであり、コマンドラインから簡単にソフトウェアをインストールすることができる。また、環境変数も自動的に追加してくれる為、既にchocoをインストールしている方はこちらの方法がおすすめ。
chocoを用いてPyenvをインストールする手順は以下の通り。
choco install pyenv-win
インストールが完了すると、PATH環境変数に以下のディレクトリが追加される。
- %USERPROFILE%\.pyenv\pyenv-win\bin
- %USERPROFILE%\.pyenv\pyenv-win\shims
最後にインストールされたか、以下のコマンドを実行して確認する
pyenv --version
使用するPythonのインストール
まずはpyenv`を最新の状態にアップデートする為に、以下のコマンドを実行する。
pyenv update
これにより、pyenv
が最新のPythonインストーラ情報を取得し、利用可能なバージョンが更新される。
次に以下のコマンドを実行して、インストール可能なバージョンを一覧表示、 インストールしたい特定のバージョンが存在するか確認する。
pyenv install --list
Pythonの特定バージョンをインストールする手順は以下の通り。
pyenv install <version>
例えば、Python 3.10.11をインストールする場合は以下のコマンドを実行する。
pyenv install 3.10.11
インストール後、使用するPythonバージョンを設定する。
pyenv global 3.10.11
これにより、システム全体でPython 3.10.11が使用されるようになる。
補足
プロジェクトごとに異なるPythonバージョンを設定する場合、以下のコマンドを使用してディレクトリごとにバージョンを指定することができる。
pyenv local <version>
Pipenvとは
Pipenvは、Pythonの依存関係を管理するツールであり、Pipenvを使用し仮想環境を作成することで、パッケージの依存関係をプロジェクト単位で管理することができる。
Pipenvのインストール
Pipenvをインストールするには以下のコマンドを使用する。
pip install pipenv
仮想環境の構築
まずは任意の場所にプロジェクトのフォルダを作成する
cd C:\Users\user\Documents\myproject # myprojectは任意のフォルダ名をつける
次にpyenvでプロジェクトで使用するPythonのバージョンを指定する
pyenv local 3.10.11
pipenvで実行するバージョンを指定する。今回の例では、先ほどpyenvにインストールした3.10.11を指定する。
pipenv --python 3.10.11 # 上記以外にも下記のようにアバウトな指定も可能 # Python 系を使う場合 # pipenv --python 3
作成した仮想環境に入る
pipenv shell
特定のパッケージをインストールするには以下のコマンドを使用する。
pipenv install <package> # 例えば、requestsパッケージをインストールする場合は以下の通り。 # pipenv install requests
まとめ
pyenvとpipenvを組み合わせることで、バージョン管理とパッケージの依存関係の管理を一元化することで、効率的な開発環境を整えることができるようになる。
良いPythonLIFEを