Smile Engineering Blog

ジェイエスピーからTipsや技術特集、プロジェクト物語を発信します

Pythonのvenvでパッケージ管理する

今回は、venvを用いたPythonのパッケージ管理方法を解説します。

パッケージ管理とは?

Pythonでは、pipコマンドによりパッケージをインストールすることが出来ます。このときにそのままパッケージをインストールすると、ユーザーディレクトリなどにインストールされ、各プロジェクト共通になります。

しかし、プロジェクト毎にパッケージを隔離したい場合があります。例えば、特定のプロジェクトのパッケージのバージョンを古いバージョンのままにしたいなどです。そのような場合に、パッケージ管理を利用します。

前準備

venv自体はPython3.3から標準搭載であるため、Pythonのバージョンが3.3以上であれば、venvのインストール作業は必要ないです。

まず、プロジェクトディレクトリを以下の構成にします。

[Project Directory]
  ├src
  │ ├__init__.py
  │ └hoge.py
  └venv   

上記のvenvディレクトリは仮想環境ディレクトリなどと呼ばれ、このディレクトリ以下にインストールしたパッケージが保存されていきます。最初、venvディレクトリの中は空にします。ディレクトリ名はvenvでなくてもよいですが、一般的にvenvと命名することが多いので、そのままとします。

なお、srcディレクトリ以下にソースコードを配置します。このディレクトリも制限はないですが、srcディレクトリ以下にソースコードを配置するのが一般的なので、こちらもそれに倣います。

利用方法

仮想環境の作成

カレントディレクトリをプロジェクトディレクトリ直下にした状態で、コマンドプロンプトなどで以下のコマンドを打ちます。

>python -m venv [venv_dir_name]

[venv_dir_name]には仮想環境ディレクトリのディレクトリ名を入力します。なので、今回はvenvとなります。

仮想環境の作成に成功すると、以下のように仮想環境ディレクトリの配下に新たにディレクトリやファイルが生成されます。

[Project Directory]
  ├src
  │ ├__init__.py
  │ └hoge.py
  └venv
     ├Include
     ├Lib
     ├Scripts
     └pyvenv.cfg

Activate

以下のようなコマンドを入力して仮想環境を有効にします。

>.\[venv_dir_name]\Scripts\activate
([venv_dir_name]) >

コマンド入力後、コマンドプロンプト上で仮想環境ディレクトリ名が表示されるようになったと思います。

次に、インストール済みパッケージを確認するために、pip freezeコマンドを入力します。

([venv_dir_name]) >pip freeze
([venv_dir_name]) >

入力の結果、パッケージのインストール状態がまっさらになっていることがわかります。

パッケージのインストール

pip installコマンドを入力して、パッケージをインストールします。インストール方法は、venvを使用していないときと同じです。

([venv_dir_name]) >pip install [package name]

次に、再度pip freezeコマンドを入力します。

([venv_dir_name]) >pip freeze
[package name1]==x.x.x
[package name2]==x.x.x
・
・
・

入力の結果、仮想環境にパッケージがインストールされたことがわかります。

Deactivate

仮想環境を無効にするには、deactivateコマンドを入力します。

([venv_dir_name]) >deactivate
>

入力の結果、コマンドプロンプトから仮想環境ディレクトリ名の表示が消えて、仮想環境を有効にする前の状態に戻ったことがわかります。

仮想環境の破棄と作り直し

仮想環境を1から作り直したい場合など、作成済みの仮想環境を破棄したい場合は、仮想環境ディレクトリ配下のディレクトリとファイルをすべて削除してください。

削除後、再度venvコマンドを入力することにより、仮想環境を作り直すことが出来ます。