venvモジュールはPythonに標準で添付される仮想環境構築用のモジュールである。これを使って仮想環境を構築したり、その環境を有効化/無効化したりする方法を紹介。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
コマンド | 説明 |
---|---|
python -m venv 仮想環境ディレクトリ py -m venv 仮想環境ディレクトリ |
指定した「仮想環境ディレクトリ」に仮想環境を構築する(Windowsではpythonコマンドではなくpyコマンドを使用する場合もある) |
source 仮想環境ディレクトリ/bin/activate | 仮想環境を有効にする(sourceコマンドがあるUNIX系統のシェル)。使用しているシェルによっては「.fish」「.csh」などの拡張子が必要 |
. 仮想環境ディレクトリ/bin/activate | 仮想環境を有効にする(UNIX系統のOS)。使用しているシェルによっては「.fish」「.csh」などの拡張子が必要 |
仮想環境ディレクトリ\Scripts\activate | 仮想環境を有効にする(Windows)。使用しているシェルごとに「.bat」「.ps1」の拡張子を付加してもよい |
deactivate | 仮想環境を無効にする |
venvモジュールを使った仮想環境の構築とその有効化/無効化 |
venvモジュールは仮想環境を構築するためのモジュールだ。マシンワイドにインストールされている特定バージョンのPythonを基に仮想環境を構築することで、「複数のプロジェクトがあり、それらが同一ライブラリの異なるバージョンを使用する」ようなときにプロジェクトごとに作成した仮想環境に別々のバージョンのライブラリをインストールできる。
仮想環境を構築するにはPython処理系を起動するコマンド(pythonまたはpy)に-mオプションを指定して、続けてモジュール名である「venv」と仮想環境を構築するディレクトリを指定する。まとめると「python -m venv 仮想環境ディレクトリ」(UNIX系統のOSなど)や「py -m venv 仮想環境ディレクトリ」(Windows環境)となる。
仮想環境ディレクトリの名前としては、ドキュメントによれば「.venv」がよく使われるとのことだ。本稿では「venv」を使用する。
このとき仮想環境は起動したPython処理系のバージョンを使うようにセットアップされる。そのため、「python3.9 -m venv 仮想環境ディレクトリ」「py -3.10 -m venv 仮想環境ディレクトリ」などのように仮想環境構築に使用するPythonのバージョンを指定することも可能だ。
例えば、以下はmacOSでPython 3.10を使用して仮想環境を構築する例だ(ターミナルでzshを使用)。
また、以下はWindowsでPython 3.11を使用して仮想環境を構築する例だ(コマンドプロンプトを使用)。
これらのコマンドにより仮想環境ディレクトリにはPython処理系を含んだディレクトリ(UNIX系統のOSでは「bin」、Windows環境では「Scripts」)やライブラリのインストール先となる「Lib」ディレクトリ、仮想環境の構成情報を含むpyvenv.cfgファイルなどが作成される。
構築した仮想環境はactivateコマンドで有効化することで、使用できるようになる。これには仮想環境ディレクトリの下にあるbinディレクトリ(またはScriptsディレクトリ)に含まれている有効化スクリプトを実行する。スクリプトの名前は基本的に「activate」だが、自分が使用している環境やシェルによっては「.fish」「.csh」「.ps1」「.cmd」などの拡張子を付加する必要があるかもしれない。
このスクリプトをUNIX系統のOSではsourceコマンド(または.コマンド)を使って「source venv/bin/activate」「. venv/bin/activate.csh」などのように実行する。WindowsではコマンドプロンプトやPowerShellから単に「venv\Scripts\activate」または拡張子を明記して「venv\Scripts\activate.bat」「venv\Scripts\activate.ps1」などと実行する。
仮想環境が有効になると、プロンプトの先頭にはその仮想環境の名前(仮想環境ディレクトリの名前)がかっこに囲まれて表示されるようになる。
例えば、以下はmacOSで仮想環境を有効にする例だ。
以下はWindows環境で仮想環境を有効にしているところだ。
activateスクリプトファイルを実行すると、画面がクリアされた後、以下のような画面が表示される。
仮想環境を無効にするには「deactivate」コマンドを実行する。
以下はmacOS環境での例だ。
以下はWindows環境での例だ。
Visual Studio Codeなど、仮想環境を構築し、それをプロジェクトで使用するデフォルトのPython処理系として設定すると、ターミナルを開いたときに仮想環境の有効化を自動的に行ってくれるような開発環境やエディターもあるので、それらの支援機能を使うのもよいだろう。
Copyright© Digital Advantage Corp. All Rights Reserved.