ひこぽんのーと

覚書と雑記です。

Pythonの仮想環境を作ってみるのこと

今更だけど、pythonの仮想環境を作ってみる。
というのも、python3 + Djangoを試してみたいからだ。

一応、python2版のDjangoならば、
パッケージマネージャからインストールできるのだが、
バージョンが古いのでDjangoチュートリアルすら実行できない。

したがって、今回は仮想環境を作り、
仮想環境上にDjangoをインストールしてみようと思う。

仮想環境の構築

まず、virtualenvという仮想環境を構築できるツールをインストールする。

sudo apt-get install virtualenv

インストールしたらvirtualenvを使って仮想環境を作る。

virtualenv -p /usr/bin/python3 py3env

オプションで指定しているのは仮想環境で使用するPythonインタプリタのパス。
未指定の場合は、システムデフォルトのPythonインタプリタが使われる。
パラメータには作成する仮想環境のパスを指定する。
コマンドが終了すると環境の出来上がり。

仮想環境の有効化

ターミナルから作成した仮想環境に移動して、環境を有効化するコマンドを実行する。
仮想環境のbinディレクトリ配下にあるactivateファイルをsourceコマンドで読みこめば良い。

source bin/activate

コマンド実行後、
ターミナル上のユーザ名の前に仮想環境名が表示されれば成功。
ついでにPythonのバージョンを見てみる。
f:id:nagamitsu1976:20170330121243p:plain

Pythonのバージョンが3.5になっているのがわかる。
ここで仮想環境を抜けてみる。
抜けるにはdeactivateコマンドを使う。
仮想環境を抜けたあとのPythonのバージョンを見てみる。
f:id:nagamitsu1976:20170330121551p:plain

Pythonのバージョンが2.7.11でデフォルト環境が維持されているのがわかる。
というわけで仮想環境ができた。
以降、この環境を使ってDjangoを試してみる。

ちなみに仮想環境を破棄するには、ディレクトリ毎削除してしまえば良い。

追記: virtualenvのオプションについて。*1
上の例ではpythonインタプリタのパスをオプション指定していたが、
これだと含有するパッケージはほぼ空なので、
必要なパッケージをpipでインストールする必要がある。
そこで、--system-site-packagesを追加してやると、
コピー元となるシステム上のpython環境にインストールされているパッケージも
コピーしてくれる。
手間を考えるとこっちのが便利だね。

virtualenv -p /usr/bin/python3 --system-site-packages py3env

*1:pipでnotify2がインストールできなくて、結局、apt-getでpython3-notify2をインストールしてから、これで環境にコピーした。