Python3のvenvで仮想環境をかんたんに作成する

公開日:  

python


venvコマンドを使うとプロジェクトごと(フォルダごと)に独立したPython環境を構築することができます。システムのPythonと分離した個々のプロジェクトだけのPython環境になるわけです。

pipなどでパッケージをインストールしても、そのプロジェクトのPython環境にだけインストールされ、システムのPython(や他のPythonプロジェクト)にはインストールされません。

環境

  • Windows10
  • Python 3.6.2

以下の説明は、システムにPythonがインストールされていてPATHが通っている(PowerShellでpythonと入力して実行できる状態である)ことが前提です。 コマンドを実行するのにPowerShellを使っていますが、コマンドプロンプトやgit-bashでも大丈夫です。

仮想環境を作成する

まずは自分のプロジェクトを作成します。といっても空のフォルダを作るだけです。今回はmyprojという名前のフォルダを作成しました。
作成したらPowerShellを開いてmyprojまで移動しておきます。

次に仮想環境を作るために以下のコマンドを実行します。

python -m venv .venv

実行するとmyprojフォルダ内に.venvというフォルダが作成されます。
このフォルダ内にPythonの環境が入っています。ためしに.venv\Scriptsフォルダ内を見てみるとpython.exeやpip.exeなんかが入っています。.venv\Lib\site-packagesにパッケージが入ります。

実はこれで仮想環境は作成できたのですが、この仮想環境を使うには有効化する必要があります。

仮想環境を有効化(activate)する

有効化するにはスクリプトを実行するだけです。

.\.venv\Scripts\Activate.ps1

上の例ではPowerShell用のスクリプトを実行していますが、コマンドプロンプトやbash用のスクリプトもあります。

シェルコマンド
コマンドプロンプト.\.venv\Scripts\activate.bat
bashsource ./.venv/Scripts/activate

仮想環境の有効化で何が起こるかというと、仮想環境のフォルダがPATHの最初に追加されます。つまり、pythonコマンドを実行するとシステムのpython.exeではなく、仮想環境のpython.exeを見に行くわけです。

PowerShellの場合、以下のコマンドで実際にpythonコマンドがどのpython.exeを見ているか確認できます。

gcm python

仮想環境から抜けたい場合は以下を実行します。

deactivate

注意点

プロジェクトのフォルダを移動したり、フォルダ名を変えたりすると仮想環境の有効化がうまくできなくなります(activateをしても仮想環境のPythonに切り替わらない)。
もしそうなった場合は(仮想環境を抜けた状態で)再度構築時のコマンドを実行してください。これで直ります。仮想環境のパッケージなどは消えません。

python -m venv .venv

まとめ

Pythonの仮想環境の作成、なんとコマンド一つでできました。
めちゃくちゃ簡単でいいですね。



関連記事