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によるパッケージインストールは、仮想環境で行います。