Django+Nginx+uwsgi on Mac

Mac上にDjango + Nginx + uwsgi環境を構築する際の手順です。

Django

Djangoは、最もポピュラーなWEBフレームワークの一つで、python言語で作られています。pythonは最近の機械学習の発展に伴って人気が急上昇した言語です。まずは自分のパソコン上にDjangoの開発環境を構築してみましょう。

pythonのインストール

pythonのインストールには、pyenvが最も便利だと思います。

他の言語もそうですが、プログラミング言語は頻繁にマイナーチェンジが行われています。数年に一回ガラッとモデルチェンジすることがあり、その場合に新旧で文法が変わったりライブラリが使えなくなったりします。

複数のプロジェクトを保つ場合も、こちらのプロジェクトだとv3.2だけど、あっちのプロジェクトだとv2.7を使うなんて言うこともあります。

自分ひとりで開発してるから関係ないや。ということにはなりません。昔作ったプロジェクトを修正しようと思った際に、今自分のパソコンにインストールされているバージョンが、その当時開発に使ったバージョンと異なるなんて当然に起こります。

その際に、いちいち現在インストールされいているバージョンをアンインストールして、新たに対象となるバージョンをインストールしなおすなんてことやってられません。

そんな問題を解決してくれるのがpyenvです。

Homebrewを使って以下の手順で簡単にインストールできます。

$ brew install pyenv
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

pyenvをインストールしたら、最新のpythonをインストールしてアクティブにしておきましょう。

$ pyenv install -l
$ pyenv install 3.7.1
$ pyenv global 3.7.1

Djangoのインストール

pyenvを使ってpythonをインストールしたら、Djangoをインストールしましょう。

ここではHelloDjangoというディレクトリを作成します。

$ mkdir HelloDjango
$ cd HelloDjango

さて、ここでHelloDjangoディレクトリの中にpythonの仮想環境を作ります。

なぜ仮想環境を作るかというと、pythonでは様々なパッケージをインストールして開発を行っていきますが、その際に様々なライブラリを使います。数値計算で有名なNumpyや、画像操作するためのPillowなど。Djangoもその一つです。

ライブラリはそれぞれに依存関係があることが多いのです。あるパッケージを使う場合、それに必要な別のパッケージがあって、そのバージョンは一つ前のものでないと動かないなど、いろんな依存関係があります。

開発プロジェクトを変えるごとに、いちいちバージョンの古いパッケージをインストールし直して…なんてことは非効率ですし、余計なインストールが増えるとどんどんパソコン内の環境が汚れていきます。

そこで、開発しているプロジェクトごとに仮想環境を作り、それぞれ独立したパッケージを利用することで、同じシステム内の環境を汚したり、壊したりすること無く開発することが出来ます。

実際に仮想環境を作ってDjangoをインストールしてみましょう。

$ python -m venv venv
$ source ./venv/bin/activate
(venv)$ pip install django

これでDjangoがインストールされました。

Djangoプロジェクトの作成

Djangoでプロジェクトを作成してみます。

(venv)$ django-admin startproject HelloDjango .

最後の”.”を忘れないようにしましょう。このピリオドは、現在の作業ディレクトリに Django をインストールするということを示しています。

早速動くかどうか見てみます。

(venv)$ python manage.py runserver

localhost:8000に接続すると無事Djangoが動いていることがわかります。

hello django

【おすすめ書籍】

Djangoの入門書として下記がおすすめです。丁寧に書かれていてフレームワーク初心者でもわかり易い内容になっています。手を動かしながらDjangoが身につきます。