Virtualenvの使い方

Virtualenv

PythonのVirtualenvについてのメモです。ひとまず使えれば良いというレベルの理解でやってますので,もし間違い等あればコメントで指摘してもらえると嬉しいです。

Virtualenvとは?

PCにPythonをインストールして必要なライブラリをpipでインストールして…としていると,通常1つのマシンには1つの環境しか作れないものです。

しかし時として違うバージョンのPythonを使いたくなることがあると思います。例えばROSを使っているからPythonは2.7を通常使用しているけど,最新の深層学習の実装を試したいからPython3系を使い時などですね。

Virtualenvはそれを可能とする1つの方法です。Virtualenvは独立したPythonの環境をいくつも作ることができます。あるディレクトリ専用の環境を作る,というような使い方も可能です。

他にもDockerで独立な環境を作ってしまうという策もありますが,新しい環境を作る度に新しいコンテナを作り直す必要があるのでVirtualenvと比較すると少々手間かなと思います。

Virtualenvの使い方

Virutalenvの使い方は非常に簡単です。まずは仮想環境を作るためのパッケージインストールですが,Python3.3以降はvenvというパッケージが標準機能として組み込まれているため,特別な作業は一切不要です。

次に実際に仮想環境を作成していきます。 ここでは以下のようなユースケースを考えることにします。

  • 特定のタスク(例えば画像処理の勉強)のためのディレクトリ"my_dir"がある。
  • そのタスクで使うPython環境を"my_env"という名前で管理する。

主だった必要手順は次のたった3つだけです。

  1. 仮想環境を作る。
  2. 仮想環境をactivate状態にして仮想環境に入る。
  3. 仮想環境を抜けるときは状態をdeactivateにする。

まずはディレクトリを作ってcdします。

$ mkdir my_dir  
$ cd my_dir  
  1. 次のコマンドで仮想環境を作ります。

    $ python3 -m venv my_env  
    
  2. 次のコマンドで仮想環境に入ります。
    仮想環境に入ったら好きなパッケージをpipでインストールします。
    ここではnumpyのインストールを例にしました。

     $ source my_env/bin/activate  
     $ pip3 install numpy  
    

    実際にPythonを起動しnumpyがimportできることを確認してみて下さい。

  3. 次のコマンドで仮想環境を抜けます。
    $ deactivate
    もう一度Pythonを起動すると,今度はnumpyのimportでエラーが出るでしょう。

再度仮想環境に入りたい場合は,2.の操作を行うだけです。
これで仮想環境が使えるようになりましたね。

終わりに

Python(3系)の仮想環境の使い方についてまとめました。仮想環境を使うことでPythonの環境構成が非常に柔軟になります。また,pipでインストールするパッケージをrequirements.txtで管理するとパッケージ管理も容易になります。

ただし,apt or brewでインストールするものについては管理できないので,その際はdockerの使用を検討する必要が出てくる点はご注意下さい。