Pythonの仮想環境を構築できるvenvとは?使い方について解説

Pythonでプログラム作成するにあたって、仮想環境を構築するのが推奨されています。これは、どのOSを利用する場合でも同様です。Pythonで仮想環境を作成できるツールはいくつかありますが、今回紹介する「venv」もその中の一つです。

ここではvenvの使い方について解説します。また、ほかのツールとの違いや仮想環境とは何かについてもあわせて紹介します。

venvの基礎知識について解説

パソコン

まずは、venvの概要について見ていきます。またPythonでよく言われる仮想環境とは何か、なぜ必要なのかについてもあわせて解説します。

Pythonと仮想環境

仮想環境とは、システム上のPythonの環境とは別に構築された実行環境を指します。これは、同じシステムの中で異なるバージョンなど別のPython環境を実行したかったり、プロジェクト単位で区別したかったりするときに利用されるものです。このような場合に仮想環境を作成するためのツールが、venvというわけです。

仮想環境が必要な理由

仮想環境がないと、Pythonの一部ライブラリをインストールできない場合があります。とくに、いくつものライブラリをすでに導入している場合、そのうちのいずれかが作用してエラーが出てしまうリスクが高まることもあるでしょう。もし仮想環境で別のスペースを用意していれば、ライブラリがインストールできないエラーも回避できるわけです。

全てのライブラリがその時点での最新のPythonバージョンに対応できていれば問題ありません。しかし一部更新が止まっているライブラリもあります。すると最新バージョンに対応できていないためにインストールできない事態も想定できるわけです。インストールできるように書き換える方法もあるかもしれませんが、時間も労力もかかるでしょう。もし仮想環境を作成しておけば、対象のライブラリを使用するスペースだけインストールできるようにバージョンを合わせればいいわけです。全体を書き換えるのと比較して、労力をかなり節約できるでしょう。

また複数のプロジェクトを同じ環境の中で開発すると、トラブルが発生しやすくなります。トラブル防止のために仮想環境を導入するのがおすすめです。例えば、プロジェクトによってバージョンが異なると、衝突を起こす危険性があります。すると想定外のエラーや互換性の問題が生じるかもしれません。プロジェクトごとに独立のスペースで開発を進めれば、このような衝突を回避できる可能性は高くなります。

venvとは

venvとは仮想環境を作成や管理できるツールです。ただしPythonの場合、バージョン3.3以降でないと利用できません。使用しているPythonのバージョンを確認してみてください。3.3以降のPythonを使用している場合、venvを別途インストールすることなく利用できるはずです。

ほかのソフトとの違い

venvのようにPythonで使用できる仮想環境ソフトは、他にもあります。よく知られているものでは、virtualenvとcondaが挙げられます。それぞれ、異なる特徴を有しているので必要に応じて使い分けましょう。

virtualenvは、サードパーティの制作したライブラリです。もし利用するのであれば、インストールをおこなう必要があります。一方venvの場合、バージョン3.3以降のPythonを使用しているのであればインストールは不要です。

またPythonそのものの管理の可否も大きな違いです。venvはPythonにあらかじめ組み込まれているので、Pythonそのもののバージョン管理はできない仕様になっています。一方virtualenvはPythonとは独立しているので、バージョン管理が可能です。venvの場合、Python自体を別のバージョンには切り替えられないので注意してください。

condaは、とくにAI関係のライブラリやツールが充実している仮想環境ソフトです。condaはAnacondaに含まれるソフトになります。AnacondaはPythonディストリビューションの一種で、こちらをインストールしないと使用できません。一方venvの場合、バージョン3.3以降のPythonを使用していれば利用可能です。

エンジニアの中には、仮想環境ツールとしてdockerを使用している方も少なくないでしょう。venvとの違いはカプセル化する対象です。venvはPython依存関係にあるところまでがカプセル化の対象です。dockerの場合、OS全体をカプセル化できるツールです。もしWindowsやMacなど異なるOSでPythonプロジェクトを進める場合には、dockerがおすすめでしょう。

venvで仮想環境を作る方法

venvで仮想環境を作成する方法について解説します。基本的にはそれほど難しくないので、初心者でも手順に従って作業すれば問題なく作成できるでしょう。

プロジェクトディレクトリを作成する

まずは、プロジェクトフォルダを作成しましょう。ドキュメントはじめ任意のフォルダ内に作成してください。フォルダ名も各々自由に設定しましょう。フォルダを作成したら、Visual Studio Codeにフォルダを移動させます。

Pythonのバージョンを設定する

次に、Pythonバージョンを設定しましょう。基本的には、現在使用している通常システムのPythonバージョンを入力します。もしバージョンが何かわからなければ「python3-V」というコマンドを実行すると、現在のバージョンが出力されます。

仮想環境を作成する

ここまで進めると、仮想環境の作成が可能になります。「python3 -m venv env」というコマンドを入力してください。「3」はあってもなくても問題ありません。最後のenvの部分が仮想環境名なのですが、これは自由に設定できます。しかし、一般的には「venv」もしくは「env」にすることが多いでしょう。上のコマンドを実行するとenvフォルダが生成されているはずです。

仮想環境を有効にする

仮想環境を作成しただけでは、まだ使える状況にはありません。仮想環境を有効にするためのコマンドがあるのです。これは、使用しているOSによって異なります。Windowsの場合「env|Scripts|Activate.ps1」、Macであれば「source env/bin/activate」です。このコマンドを実行すると、コマンドラインの冒頭に仮想環境名が表示されるはずです。

パッケージをインストールする

仮想環境が有効になったところで、必要なライブラリをインストールしましょう。Visual Studio Codeのターミナルに「pip install ライブラリ名」と入力すればインストールできます。もし「Successfully installed…」というメッセージが表示されれば、問題なくインストールが終了したことを意味します。

もし「WARNING」というメッセージが表示されたら、何らかのエラーでインストールできなかったという意味だと思ってください。例えば、使用しているpipのバージョンが古くてエラーになることが多いでしょう。その場合にはアップデートすれば、問題は解決するかもしれません。Pythonは「python3 -m pip install -upgrade pip」のコマンドでアップデートできます。ターミナルで「pip list」と入力するとインストールされたライブラリ一覧が表示されます。心配であれば、こちらで新しくインストールされているか確認してください。

作成後のvenvの活用方法を解説

venvの活用方法

venvを作成した後で、別のプロジェクトでも使いたくなったり、もう必要ないので消去したかったりすることもあるでしょう。以下の方法をマスターできれば、より広くvenvを活用できるようになります。

仮想環境をコピーする

作成した仮想環境を別のプロジェクトでも引き続き使用したい場合、一から作成する必要はありません。フォルダを複製することで、ほかのプロジェクトでも同じ仮想環境が利用できます。ただし、そのままコピーすると容量をどんどん圧迫してしまいます。

そのような場合は、「requirements.txt」というファイルにライブラリを記載することで管理しましょう。このファイルは「pip freeze > requirements.txt」とコマンド入力すれば、生成されます。次にrequirements.txtを別のフォルダに貼り付けることで、作業ディレクトリが移動します。

「python3 -m venv env」で仮想環境が作成でき、「env|Scripts|Activate.ps1」で仮想環境を起動します。ただし、この起動のコマンド名はWindowsの場合です。Macユーザーであれば「source env/bin/activate」と入力してください。ライブラリをインストールする場合のコマンド名は「pip install -r requirements.txt」です。

仮想環境を無効にする

もう仮想環境を使用しない、もしくは別に切り替えたいのであれば、今使っているものは無効にしましょう。無効化する方法は簡単です。「deactivate」というコマンドを実行することで、ターミナルから仮想環境名がなくなっているはずです。

仮想環境を削除する

もし仮想環境を最初から作り直したければ、既存のものを削除したうえで作成するのがおすすめです。こちらも簡単で、対象のフォルダを削除すればいいだけです。

Python venvのまとめ

プロジェクトごとに開発する際にはエラー発生を抑制するためにも、仮想環境を構築して、それぞれ作業していくのがおすすめです。

Pythonシステム内で仮想環境を構築したければ、venvを使用するといいでしょう。バージョン3.3以降のPythonであれば、すでに搭載されているのでインストールする必要がないからです。仮想環境の構築方法も比較的簡単なので、初心者でも実際に作業をしてみると使い方を覚えることができるでしょう。

最新情報をチェックしよう!