Python
AWS
cloud9
python3
venv

AWS Cloud9 Python3の環境でvenvを使って仮想環境を構築する方法

Pythonの仮想環境とは

Pythonで開発を行う際には多くのパッケージをインストールして開発します。
Pythonの仮想環境を構築すると、それらのパッケージをプロジェクトごとに管理することが可能です。
Pythonの仮想環境を構築するツールは複数ありますが、今回はAWS Cloud9に最初から用意されている「venv」を利用して説明を進めます。

AWS Cloud9 Python3 環境の確認

python及びpipは下記のバージョンを利用しています。

$ python -V
Python 3.6.5

$ pip -V
pip 9.0.3 from /usr/lib/python3.6/dist-packages (python 3.6)

プロジェクト用ディレクトリの作成

下記のコマンドでプロジェクト用のディレクトリを作成し、作成したディレクトリに移動してください。

$ mkdir MyProject
$ cd MyProject/

仮想環境の作成

venvコマンドで仮想環境を作成してください。
venvコマンドの後には仮想環境の名前を指定します。下記の例では「venv」という名前で仮想環境を作成しています。

$ python -m venv venv
$ 

仮想環境が正常に作成されると下記のように仮想環境名「venv」のディレクトリが自動的に作成されます。
01_仮想環境の作成.png

仮想環境の有効化

下記のコマンドを実行することで仮想環境を有効化することができます。
仮想環境の有効化が成功すると仮想環境の名前がコンソールの前に表示されるようになります。

$ source venv/bin/activate
(venv) $ 

仮想環境の状態確認

仮想環境上で状態を確認してみましょう。「pip」のパッケージ保存先が変更されていることが確認できるはずです。
仮想環境をアクティブにした状態で「pip」利用してパッケージインストールを実施すると、下記に表示されているディレクトリにインストールされます。

(venv) $ python -V
Python 3.6.5

(venv) $ pip -V
pip 9.0.3 from /home/ec2-user/environment/MyProject/venv/lib64/python3.6/dist-packages (python 3.6)

仮想環境のパッケージを確認

仮想環境にパッケージが何もインストールされていないことを確認しましょう。
下記のコマンドを実行すると「pip」でインストールされているパッケージの一覧を表示することができます。

(venv) $ pip freeze
You are using pip version 9.0.3, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

仮想環境のpipをアップグレード

pipのバージョンが最新版ではないという警告が出ているので、pipのバージョンを最新バージョンにアップグレードしておきます。

(venv) $ pip install --upgrade pip
Cache entry deserialization failed, entry ignored
Collecting pip
  Downloading https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 963kB/s 
Installing collected packages: pip
  Found existing installation: pip 9.0.3
    Uninstalling pip-9.0.3:
      Successfully uninstalled pip-9.0.3
Successfully installed pip-10.0.1

(venv) $ pip -V
pip 10.0.1 from /home/ec2-user/environment/MyProject/venv/lib64/python3.6/dist-packages/pip (python 3.6)

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

仮想環境にパッケージをインストールしてみましょう。
今回の例では「django」をインストールし、正常にパッケージがインストールされたことを確認しています。

(venv) $ pip install django
Collecting django
  Downloading https://files.pythonhosted.org/packages/ab/15/cfde97943f0db45e4f999c60b696fbb4df59e82bbccc686770f4e44c9094/Django-2.0.7-py3-none-any.whl (7.1MB)
    100% |████████████████████████████████| 7.1MB 6.0MB/s 
Collecting pytz (from django)
  Downloading https://files.pythonhosted.org/packages/30/4e/27c34b62430286c6d59177a0842ed90dc789ce5d1ed740887653b898779a/pytz-2018.5-py2.py3-none-any.whl (510kB)
    100% |████████████████████████████████| 512kB 13.1MB/s 
Installing collected packages: pytz, django
Successfully installed django-2.0.7 pytz-2018.5

(venv) $ pip freeze
Django==2.0.7
pytz==2018.5

仮想環境の無効化

仮想環境を無効化するためには、下記のコマンドを実行してください。
無効化が成功するとコンソールの(venv)という表示が消えるはずです。

(venv) $ deactivate
$

仮想環境の削除

仮想環境を削除する場合は、venvのディレクトリをのまま削除すれば問題ありません。
下記のコマンで削除を行うことができます。

$ rm -rf venv/

以上です。