pyenvによるPythonのインストールとDjango開発環境の構築

pyenvは、複数バージョンのPythonを管理して、それらを切り替えて使えるようにしてくれる、便利なバージョン管理ツールのひとつだ。

昨年の10月から11月にかけて、このpyenvを使い、Linux上にDjangoの開発環境を構築したときのメモが残っていたので、記事にしてみた。

pyenvはその名の通り、rubyでお馴染みrbenvやnodeのバージョン管理ツールnodenvのPython版だ。基本操作はこれらのツールとほとんど同じだ。

なお、この記事で、Pythonというときは、Python3を指している。Python2とPython3の間には互換性はなく、Python2のサポートは、今年4月をもって終了している。

pyenv本体のインストール

では、さっそく、curlコマンドを使って、pyenv本体をダウンロードする。

$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash 

これで、pyenv本体が、~/.pyenv以下にダウンロードされた。

続いて、.bashrc又は.bashr_profileに以下の3行を追加する。

export PATH="/home/msnk/.pyenv/bin:$PATH" 
eval "$(pyenv init -)" 
eval "$(pyenv virtualenv-init -)" 

sourceコマンドにより、この設定をシステムに反映させる。

$ source .bashrc

これで、pyenv本体のダウンロードど基本設定は終わり。

最新バージョンのPythonをインストール

続いて、次のコマンドで、ダウンロード可能なPythonのバージョンを確認する。

$ pyenv install --list 

現在のPythonの最新バージョンは、3.8.3のようなので、これを以下のコマンドを実行して、ダウンロードし、コンパイルする。

$ pyenv install 3.8.3 

この最新バージョンのPythonをシステム全体で使えるようにするため、以下のコマンドを実行する。

$ pyenv global 3.8.3 

バージョンが切り替わったことを確認するため、以下のコマンドを実行。 3.8.3の前に*印がついていれば切り替えは成功している。

  system
* 3.8.3 (set by /home/msnk/.pyenv/version)

なお、特定のフォルダ内以下でのみ、pyenveで管理しているバージョンを使えるようにしたい場合には、以下のオプションをつけて実行する。

$ pyenv local 3.8.3 

上記のコマンドを実行したフォルダ内に.python-versionファイルが作成され、そこに指定したPythonのバージョン番号が記述される。

Djangoのセットアップ

Djangoは、Pythonで実装されたWebアプリケーションフレームワークのひとつだ。MVC型(DjangoではMTVと呼ぶ)のフルスタックWebアプリケーションフレームワークという点で、Ruby on RailsやLaravel(PHPベース)と比較されることも多い。

すでに、pyenvで最新バージョンのPythonがインストールされている場合、次の2行のコマンドを実行すれば、Djangoをインストールできる。

$ pip install --upgrade pip
$ python -m pip install Django

インストールされたDjangoのバージョンの確認は次のとおり。

$ python
>>> import django
>>> django.VERSION
3.0.6

最後に表示された3.0.6という数字がインストールされたDjangoのバージョンとなる。現時点では、最新バージョンだということが分かる。なお、Djangoのバージョンを指定してインストールしたい場合は、次のようにする。

$ python -m pip install Django==【バージョン番号】

Djangoプロジェクトの作成

Djangoのセットアップが完了したら、 さっそくテスト用のプロジェクトを作ってみる。プロジェクト名はmysiteとした。

$ django-admin startproject mysite

プロジェクトmysite内のファイル構成は次のとおり。

    mysite/
    ├── manage.py
    └── mysite
        ├── __init__.py
        ├── asgi.py
        ├── settings.py
        ├── urls.py
        └── wsgi.py
    

Ruby on Railsと比べると、自動で生成されるファイルの数は少ないが、ここはあくまでもスタート地点。さらに、mysite内のmanage.pyファイルのある階層に行き、次のコマンドを実行してみる。

$ python manage.py runserver

赤字でデータベースのマイグレーションが行われていないという意味の警告が出るが、これを無視して、ブラウザーからhttp://127.0.0.1:8000/にアクセルしてみる。

ブラウザ上でロケット打ち上げに成功していれば、Djangoの新規プロジェクトが始動したという合図となる。

なお、mysiteフォルダ内にもうひとつmysiteフォルダがあるという構造が今ひとつだと感じたら、上層のフォルダ名は、後から自由に変更しても構わないことになっている。

管理画面のセットアップ

Djangoには、管理画面が最初からインストールされている。この管理画面にログインするために、先ずは次のコマンドで管理者アカウントの作成を行う。

$ python manage.py createsuperuser

ユーザー名、電子メール、パスワードの順番で設定を行う。

続いて、先ほど赤字で警告されていた、データベースのマイグレーションをここで行う。

$ python manage.py migrate

ここで、再びビルトインサーバーを立ち上げ、ブラウサーからhttp://127.0.0.1:8000/adminにアクセス。

先ほど設定したユーザー名とパスワードでログインする。

独立したプログラム同士が協調して動く、疎結合というDjangoの設計思想は、Ruby on Railsとは対局に位置するものだ。ただ、この辺りは、どちらが正しいかというより、最後はどちらが好みかという問題に帰着するだろう。

すでに、機械学習などでPythonに馴れていて、Web開発でもPythonを使いたいという流れなら、Djangoは最有力候補のひとつに違いない。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク