djangoの本を読んだりチュートリアルを見ていると、仮想環境を作りなさいと書かれていることが多いですよね。
ただ、仮想環境が何なのか分からない。仮想環境を本当に入れる必要があるのか、といった疑問を持つ方も多いのではないかと思います。
この記事では、そんな疑問に答えながら、仮想環境についてわかりやすく説明していきます。
仮想環境は無理に作る必要はありません
まず、はじめに仮想環境を作る必要はありません。
仮想環境が必要となるのは、複数人で開発を進める場合です。
チュートリアルを見て勉強をしている段階では、まだ複数人での開発は行わない段階だと思いますので、仮想環境の勉強をするよりもdjangoの勉強をした方が効率が良いと言えるでしょう。
それでも仮想環境について知りたいという方や、仮想環境の具体的な設定方法について理解したい方はこの先を読むと良いでしょう。
仮想環境とは、プロジェクト毎にソフトのバージョンを揃える方法
まず、仮想環境とは何かということについて理解していきましょう。
仮想環境とは、PythonやDjangoといったシステムのバージョンを揃えるために使われる手法のことです。
例えば、マイクロソフトのワードを使う場面を考えてみましょう。
ワードは、バージョンによって見え方が異なります(新しいワードで使えたフォントが、古いワードでは使えなかったりします。)
ある会社の上司が、複数の部下に報告書を作るように指示をしたとします。この時、使うワードのバージョンを指定しなかった場合、部下はバラバラのバージョンのワードで報告書を作ってしまうでしょう。
その結果、部下の報告書をつなぎ合わせようとしても、レイアウトが合わなかったりしてしまい、その調整で大変な手間がかかってしまうのです。
ウェブの開発もこれと同じで、Djangoもバージョンアップが重ねられており、どんどん新しい機能が付け加えられています。
そういった中で、複数のエンジニアによって開発をする場合、バージョンをそろえておかなければ、予期せぬ不具合が発生してしまうのです。
仮想環境とは?
ここから、仮想環境の中身に入っていきましょう。
仮想環境とは、あなたのパソコンに入っているソフトのバージョンとは違うバージョンでシステムを動かすために作られる環境のことを言います。
先ほどのワードの例で考えていきましょう。
あなたのパソコンにはワード2010がインストールされているとします。
あなたは、基本的にワード2010で様々な書類を作成しているとしましょう。
ここで、上司からワード2003で書類を作って欲しいという依頼があったとしましょう。
ここで、ワード2010をアンインストールしてワード2003をインストールするのは効率的とは言えないですよね。あなたはワード2010で多くの書類を作っているからです。
そこで登場するのが仮想環境です。
ウィンドウズの例で言うと、デスクトップに特別なフォルダを作り、そのフォルダの中でワードファイルを作ると、それはワード2003で作られる。というイメージです。
つまり、仮想環境を作ったフォルダ以外であれば今まで通りワード2010を使うことができるのです。
ウェブ開発の世界では、一つのプロジェクトを作るために複数のシステム(プログラム)を使う必要があり、それぞれのシステムには基本的にバージョンがあります。
開発者がそれぞれのプロジェクトに合わせてシステム(プログラム)をアンインストール-インストールするのはあまりにも非効率的です。
そこで使われるのが仮想環境なのです。
仮想環境のイメージ
先ほど具体例で仮想環境の概念について説明しましたが、さらに理解を深めるために、ここからはイメージで仮想環境について整理していきましょう。
以下の図が仮想環境のイメージです。
パソコンのOSにはPythonはバージョン3.6、Djangoはバージョン2.1が入っているとします。
しかし、今関わっているほかの案件は3年前からプロジェクトが進んでいるので、そこで使っているPythonのバージョンは2.2、Djangoは1.0を使うとしましょう。
この時、別のフォルダを作り、そこで仮想環境を起動するためのプログラムを実行することによって、違うバージョンのプログラムを使うことができるようになるのです。
仮想環境を作る方法(インストール)
ここから、具体的に仮想環境を作る方法についてみていきましょう。
仮想環境を作るためには、そのためのプログラムをインストールする必要があります。
pipのインストール
まずはpipをインストールする必要があります。djangoをインストールする時もpipのインストールを先に行っている必要があります。
pipをインストールしていない場合は、以下のコマンドでインストールしておきましょう。
コマンドライン$ sudo apt-get install pip
virtualenvのインストール
その上で、以下のコマンドを打つことで仮想環境を作るためのプログラムであるvenvをインストールすることができます。
コマンドライン$ sudo apt-get install python3-venv
これでインストールは完了です。
仮想環境を作る方法(実行)
最後に、仮想環境を作る方法についてみていきましょう。
まず、仮想環境を作りたいフォルダに移動します。今回は、virtualフォルダを作り、そこで仮想環境を作ることを想定します。
コマンドライン$ mkdir virtual
$ cd virtual
virtualフォルダに移動したうえで、以下のコマンドを打ちましょう。
コマンドライン$ python3 -m venv newvirtualenv
ここで、newvirtualenvというのは、任意の名前です。aでもvirtualでも何でも構いません。
これで、仮想環境に必要なデータ(フォルダ)がvirtualフォルダの中できました。
lsコマンドを打つと、newvirtualenvフォルダができていることが確認できます。
binフォルダに移動しましょう。
コマンドライン$ cd newvirtualenv
$ cd bin
binフォルダまできました。ここで、activateコマンドを実行すると、newvirtualenv環境に入ることになります。
activateコマンドを実行するためには、sourceコマンドを使います。sourceコマンドは、ファイルの中身を読み込んでそのコードを実行するために使うコマンドです。
コマンドライン$ source activate
そうすると、コマンドラインがこのように変わっていることがわかります。
(1行目はDESKTOP..という記載ですが、souce activateコマンドを打ったあとは(newvirtualenv)というコードが入っています)
これで仮想環境の構築は完了です。
(newvirtualenv)のときに新しくプログラムをインストールすることで、そのプログラムが優先的に呼び出されるようになります。
補足この時、仮想環境で使いたいプログラムをインストールしていない場合、親フォルダのプログラムが実行されてしまいますので注意しましょう。
例えば、python3.6がインストールされているOSがあったとします。この時、仮想環境を作ったとしても、違うバージョンのPythonを仮想環境の中でインストールしなければpython3.6が実行されてしまいます。
仮想環境をうまく使いこなすことによって、効率的な開発が可能になります。
複数のエンジニアで開発をするときには、しっかりとバージョンの管理をするようにしましょう。