はじめに
Pythonの開発を始める際、プロジェクトごとに独立した環境を作ることはとても重要です。
環境を分けずに複数のPythonプロジェクトを同じ環境で開発する場合、パッケージのバージョン衝突が発生する可能性があり、予期せぬエラーや互換性の問題が生じる可能性があります。
本記事では、そんな問題を解消してくれるvenvの概要と基本的な使い方について紹介します。
venvとは
venvは手軽に仮想環境を作成・管理することができるツールです。
また、venvはPythonバージョン3.3以降の標準ライブラリとして提供されており、バージョン3.3以降のPythonをインストール済みの方はvenvを別途インストールすることなく利用可能です。
使い方
仮想環境作成
プロジェクト直下に移動後、以下のコマンドを実行するとプロジェクト内に指定した仮想環境名のフォルダが作成されます。
venvと命名されることがよくあるので、迷ったらpython -m venv venv
で大丈夫です。
python -m venv [仮想環境名]
仮想環境のアクティベート
次に、以下のコマンドを使って仮想環境をアクティベートします。
Linux, MacとWindowsでディレクトリ構成とコマンドが若干違うため分けて紹介します。
Linux, Macの場合
. [仮想環境名]/bin/activate
Windowsの場合
.\[仮想環境名]\Scripts\activate
※ .
は作成した仮想環境へのパスを表しており、今回はプロジェクト直下にvenv環境があることを想定しています。
コマンドを実行している場所にvenv環境がない場合は.
の部分のパスを適宜書き換えてください。
コマンド実行後、パスの前に[仮想環境名]が表示されれば環境がアクティブになっており、この状態で必要なパッケージをpip installしていくと自動的に仮想環境にインストールされます。
venv(仮想環境)フォルダはインストールしたパッケージが含まれているため、プロジェクトをgitでバージョン管理をする場合は.gitignoreに追記するのを推奨します。
複数人で開発していると、使用しているパッケージの共有が必要になることがあります。
そんな際は以下のコマンドで仮想環境にインストールされているパッケージをファイルに書き出して共有できます。
インストール済みパッケージとバージョン書き出し
pip freeze > requirements.txt
書き出したrequirements.txtを一括インストールする場合
pip install -r requirements.txt
開発用と本番用でインストールするパッケージを分けたい場合が出てくる場合があります。
その際はrequirements-dev.txt
のような別途ファイルを作成後、以下のように-r requirements.txt
を入れ、pip install -r requirements-dev.txt
を実行するとrequirements.txtも同時に一括インストールしてくれます。
-r requirements.txt
black==23.3.0
flake8==6.0.0
仮想環境のディアクティベート
仮想環境の使用を終了したい場合は以下のコマンドで仮想環境を抜けることができます。
deactivate
補足: VSCodeで作成した仮想環境を使用する方法
作成した仮想環境をVSCodeのPython実行環境で使用する場合、インタープリターの選択が必要になります。
すでに選択されている場合は、Pythonファイルを開くと下の画像のように、VSCodeの右下にPython[バージョン]('[仮想環境名]': venv)が表示されます。
仮想環境が選択されていない場合、仮想環境内シェルでMacの場合which python
, Windowsの場合where python
を実行すると実行用PythonのPATHが表示されるため、PATHをコピー後、Macの場合CMD+shift+P
, Windowsの場合Ctrl+Shift+P
を押下するとVSCode上部に検索ボックスが出るため、検索に>Python: Select Interpreter
を入力 -> インタープリターの選択 -> インタープリター パスを入力... -> 入力ボックスにコピーしたPythonパスをペーストすると仮想環境のインタープリターが設定できます。
最後に
仮想環境を構築するツールは他にもありますが、今回は私が一番手軽だと思ったvenvをチョイスして記事を書いてみました。
今後も便利なものを紹介していきたいと思います。
ご拝読いただきありがとうございました。