Python開発の勉強(3) venvで仮想環境の作成

はじめに

Pythonには、簡単に外部モジュールをインストールできるようにpipというパッケージ管理の仕組みがあります。
開発環境サーバの中で複数のプロジェクト(アプリケーション単位)の開発を行う場合、プロジェクトごとに必要最小限のパッケージをインストールしたいという要件が出てくることがあります。

そこで、venvモジュールを使用して、プロジェクトごとにPythonの仮想環境を作成します。
この仮想環境を使用することで、以下のメリットを享受できます。

  • 仮想環境ごとに、インストールするパッケージを個別に管理できる
  • pythonコマンドで、任意のバージョンのPythonを呼び出せる
  • 仮想環境は簡単に作成、削除でき、システム上のPythonライブラリ構成を汚さない

前提条件

  • 開発環境サーバは、CentOS 7.6.1810を使用します。
  • Pythonは、IUSリポジトリ版のPython 3.6.8を使用します。
  • 開発環境サーバにログイン済みの状態から作業を開始します。

仮想環境の作成

任意のプロジェクトディレクトリを作成し、その配下に仮想環境を作成します。
プロジェクト単位で仮想環境を管理したいので、一律venvという名前で仮想環境を作成します。

$ mkdir test-project
$ cd test-project
$ python3.6 -m venv venv
$ ls -ld venv/
drwxrwxr-x. 5 vagrant vagrant 74  7月  7 20:12 venv/

仮想環境の有効化

作成した仮想環境を有効化します。
仮想環境を有効化すると、pythonコマンドで実行されるバージョンが代わります。
仮想環境作成時、python3.6(Python 3.6.8)コマンドを使用したので、pythonコマンドで実行されるのも同バージョンとなります。

$ source venv/bin/activate
(venv)$ python -V
Python 3.6.8

仮想環境へパッケージのインストール

仮想環境を有効にした後、pipを使用してパッケージをインストールしてみます。
1行目で、pip自体を最新バージョンにアップグレードします。
2行目で、requestsパッケージをインストースルします。
3行目で、pipでインストール済みのパッケージを表示します。
pipにより、requestsとその依存関係にあるパッケージがインストールされたことが確認できます。

(venv)$ pip install --upgrade pip
(venv)$ pip install requests
(venv)$ pip freeze
certifi==2019.6.16
chardet==3.0.4
idna==2.8
requests==2.22.0
urllib3==1.25.3

仮想環境の無効化

仮想環境を無効化します。
これにより、OS標準のPython環境に切り替わります。pipで管理しているパッケージも、OS上のもの(まだ何もインストールされていない状態)に切り替わります。

(venv)$ deactivate
$ python -V
Python 2.7.5
$ pip3.6 freeze
$

まとめ

venvモジュールを使用して、仮想環境を作成しました。

  • 仮想環境は、プロジェクト(アプリケーション単位)ごとに作成します。
  • アプリケーションの開発、実行は仮想環境を有効化してから行います。
  • pipによるパッケージインストールは、仮想環境で行います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です