Vagrant で Python(Django) 開発環境を準備する

  • 53
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Mac で VM に Ubuntu 14.04 を用意して Django で開発する準備をするまでです。
次を含みます。

  • Python の開発環境を初期設定すること
  • VMのUbuntu(ゲストOS) のサーバーを 外のMac(ホストOS) から確認する方法

Python 環境は virtualenvwrapper まで入れておくのが個人的には快適なのでその前提で進めます。

Mac から Vagrant で Utunbu 14.04 を扱えるようにするまでについては
http://qiita.com/seizans/items/ef220c98fde6dbfbee32
を確認してください。

virtualenvwrapper をインストールする

virtualenv は複数の環境(Pythonライブラリのインストール状態) を分けて保持するためのものです。
virtualenvwrappervirtualenv をより楽に操作するための便利アプリケーションです。

$ sudo aptitude install virtualenvwrapper
$ sudo pip install virtualenvwrapper

virtualenvwrapper を初期設定する

$ echo 'export WORKON_HOME=$HOME/.virtualenvs' >> .bashrc
$ echo 'source /etc/bash_completion.d/virtualenvwrapper' >> .bashrc
$ echo 'source `which virtualenvwrapper.sh`' >> .bashrc
$ . .bashrc
$ mkvirtualenv env1

あとは virtualenvwrapper では以下を把握すればだいたい快適に過ごせます。

$ mkvirtualenv envname  # envname を新規に作成してそれに入る
$ rmvirtualenv envname  # envname を削除する
$ workon  # 登録済み virtualenv をリストする
$ workon envname  # envname に入る
$ deactivate  # virtualenv から出る

Django を始める

$ pip install Django
$ django-admin.py startproject spam
$ cd spam/
$ python manage.py runserver

これで djangoアプリが起動します。
ただしまだ ホストOS(Mac) のブラウザなどからは動作を確認できません。

ホストOS(Mac) から ゲストOS(Ubuntu) 内の djangoアプリ を確認できるようにする

一度ゲストOSから exit して、VMの設定を変更します。
Vagrantfile を以下のように編集します。

  # config.vm.network :forwarded_port, guest: 80, host: 8080
  のコメントアウトを外す。(django はデフォルトで 8000ポートでの起動なので 8000 に変えている)
  config.vm.network :forwarded_port, guest: 8000, host: 8080

上の guestで指定したゲストOSのポートが、ホストOSからは hostで指定したポートで確認できるようになります。
この設定変更を反映させるためVMを再起動します。

vagrant reload (vagrant halt してから vagrant up でもOK)

再び djangoアプリを起動して確認しましょう。

$ vagrant ssh
$ workon env1
$ cd spam/
$ python manage.py runserver 0.0.0.0:8000
  (単に runserver すると 127.0.0.1:8000 になって ホストOS から見れません)

ゲストOSからブラウザなどから localhost:8080 (8000ではなく8080) で djangoアプリが動作していることを確認できます。

参考