Skip to content
This repository has been archived by the owner on Jun 29, 2020. It is now read-only.

開発環境構築 for Mac OS X

giginet edited this page May 27, 2015 · 30 revisions

開発環境構築 for Mac OS X

Xcodeのインストール

Xcodeの最新版をMac App Storeから導入してください

Command Line Toolのインストール

$ xcode-select --install

ダイアログが出るのでインストールをクリックしましょう

Homebrewのインストール

ソフトウェアのインストールにHomebrewの利用を推奨しています。 導入していない方は、下記のように導入してください。

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

また、Homebrewの拡張であるHomebrew Caskが非常に秀逸なのでこれも紹介します。

Homebrew CaskはGUIアプリのインストールをHomebrewと同じインターフェイスで行えるようにするものです。 後ほど、これを使ってIDEなどを導入します。

$ brew tap phinze/cask # Install Homebrew Cask
$ brew install brew-cask 

依存ライブラリのインストール

Python製の画像処理ライブラリPillowを使うために必要な依存ライブラリを導入します。 全部Homebrewで入るので一発でOK

c.f. Installation — Pillow v2.4.0 (PIL fork)

$ brew install libtiff libjpeg webp little-cms2

pyenv, pyenv-virtualenvのインストール

Kawazでは、Python環境の構築にpyenvの利用を強くオススメしています。

Homebrewで導入するのが楽でオススメです

$ brew install pyenv
$ brew install pyenv-virtualenv
$ echo 'if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi' >> ~/.bash_profile
$ source ~/.bash_profile
$ which pyenv
> /usr/local/bin/pyenv

Python 3.3.5のインストール

Kawaz3rdは現時点でPython3.3.5での開発を前提にしております。

$ pyenv install 3.3.5
$ pyenv global 3.3.5

リポジトリのclone

Githubからリポジトリをcloneしましょう。

$ cd ~/
$ git clone -b develop --recursive [email protected]:kawazrepos/Kawaz3rd.git

TIPS : hubの導入

今後、Pull Requestを送ったり、簡単にcloneするためにhubというgit拡張の導入を強くオススメしています

$ brew install hub

導入することで、cloneやPull Requestが楽に行えるようになります。特にこの辺はよく使うので便利です

$ git clone kawazrepos/Kawaz3rd # リポジトリをclone
$ git pull-request -b develop # 現在のブランチからdevelopへのPull Request作成
$ git pull-request -b develop -i <issue_number>  # 同上。さらにissueに紐付ける

virtualenvの作成

pyenvを用いてvirtualenvを作成します。virtualenvを作成しておくと、ライブラリなどの環境がカプセル化でき、他の環境を汚さずにプロジェクトごとにライブラリを管理することができて便利です。

$ cd Kawaz3rd
$ python --version # バージョンが正しいか確認する
> Python 3.3.5
$ pyenv virtualenv kawaz
$ pyenv local kawaz
$ pyenv virtualenvs # virtualenvが適応されているか確認する
> * kawaz

こうすることで、リポジトリルートに.python-versionが作成されます。これにより、このディレクトリ以下の階層では常にkawazのvirtualenvが利用されます

依存ライブラリのインストール

Pythonのパッケージ管理ツールであるpipを用いてインストールします。pyenvを利用すると最初からpipが利用できます。お便利ですね。

$ pip install -r config/requirements-django.txt
$ pip install -r config/requirements.txt
$ pip install -r config/requirements-test.txt
$ pyenv rehash

djangotoxを使用する関係で、個別に導入する必要があります。何とかしたい。

テストの実行

念のため、今から利用しようとしているKawazのバージョンが正しいかを確認するためにテストを実行します。

正常に環境が構築できていれば、テストが全て通るはずです。

$ python manage.py test kawaz
> Creating test database for alias 'default'...
> .................................................................................................................................................
> ----------------------------------------------------------------------
> Ran XXX tests in X.XXXs

> OK
> Destroying test database for alias 'default'...

データベースの初期化

$ cd ~/Kawaz3rd
$ python manage.py init_database

これを実行すると、以下の操作をまとめて行ってくれます

  • databaseの初期化
  • fixtureの読み込み
  • RecentActivityの取得

辞書のコンパイル

Kawazポータルは基本は英語になっていますが、日本語向けの辞書が用意されています。

以下のコマンドを実行すると辞書をコンパイルできます

$ python manage.py compilemessages

LESS/CoffeeScriptの導入

django-compressでLESSやCoffeeScriptを使ったビルドを行うために導入が必要です。

以下のインストラクションを行ってください

https://github.com/kawazrepos/Kawaz3rd/wiki/%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%82%B5%E3%82%A4%E3%83%89%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83-for-Mac-OS-X

鍵の復号

Google CalendarやTwitter連携を使うためにAPIキーを復号する必要があります。

リポジトリには暗号化されたAPIキーが含まれていて、復号には復号用のパスワードが必要です。

復号用パスワードは、KeePassに入っているので、ゼーレに聞いてください。

$ brew install gpg
$ cd kawaz3rd
$ ./utils/decrypt-files $PASSWORD

複合後、config/activitiesなどに.jsonファイルが生成されていれば正常です。

CaseInsensitive対応

django-admindocというプラグイン、Mac OS X限定で、エラー吐いて死ぬという問題がある。

http://patrick.arminio.info/blog/2012/02/fix-valueerror-unknown-locale-utf8/

以下のコマンドを打ち込み、以下のようなエラーが出たら、お使いの環境では上手く動かないので、別途設定が必要。

$ python -c 'import locale; print(locale.getdefaultlocale());'
ValueError: unknown locale: UTF-8

上記のようなエラーが出た場合、~/.bash_profileなどに以下のような設定を追記してください。

export LANG="ja_JP.UTF-8"
export LC_COLLATE="ja_JP.UTF-8"
export LC_CTYPE="ja_JP.UTF-8"
export LC_MESSAGES="ja_JP.UTF-8"
export LC_MONETARY="ja_JP.UTF-8"
export LC_NUMERIC="ja_JP.UTF-8"
export LC_TIME="ja_JP.UTF-8"
export LC_ALL=

サーバーの起動

$ honcho start -f config/Procfile.dev

これを実行すると

  • Kawaz3rdの起動(python manage.py runserver)
  • LiveReloadの起動

が同時に実行されます。

これで正常にKawazが動き出します!

http://localhost:8000にアクセスするとKawazが表示されるはずです。

honchoはサーバーやデータベースと言ったサービスをまとめて起動することができるユーティリティです。

RubyのWeb開発をされている方はforemanをご存じかも知れませんが、それのPython実装になっています。

PyCharmの導入

開発用のIDE(統合開発環境)としてPyCharmの利用をオススメしています。

PyCharmには、完全無料で利用できるPyCharm Community Editionと、年額のサブスクリプションライセンスであるProffesionalが存在します。学生は年額$30ぐらいで購入できるので、Professional版の購入を推奨します。

先ほど紹介したHomebrew Caskを利用すれば、これもコマンド一発で導入できます。

$ brew cask install pycharm-ce # Community Edition
$ open "~/Application/PyCharm CE.app"

or

$ brew cask install pycharm
$ open ~/Application/PyCharm.app

Adminページの利用

http://localhost:8000/adminでAdminページの利用ができます。

ID/passwordは、データベースの初期化時に設定したものを利用してください。

デバッグ用のfixtureの導入

デバッグ用にテストデータが用意されています。

$ python manage.py loaddata debug

でfixtureを導入できます。

ただし、Fixtureを導入すると、初期化の時に作ったユーザーデータが上書きされ、テスト用のユーザーが作成されてしまいます。 そのため、作成したユーザーに変わって、fixtureのユーザーでログインしてデバッグしてください。 adminページに入るには、ユーザー名:system、パスワード:passwordでログインできます。

一度構築した開発環境を更新する

developをpullする

最新版は develop ブランチに実装されています。

$ git checkout develop
$ git pull

これで最新版が入ります。

依存ライブラリを入れ直す

サーバーサイドエンジニアの気分により、必要なライブラリが変わる可能性があります。

その場合、下記を再実行してください。

$ pip install -r config/requirements.txt

DBを作り直す

最新版ではスキーマが変更されている可能性があります。何かおかしかったらDBを作り直しましょう

$ rm db.sqlite3 # 元のDBを削除する
$ python manage.py migrate
$ python manage.py loaddata production
$ python manage.py loaddata debug

また、syncdb用のお便利スクリプトを作りました。

$ python manage.py init_database
Do you want to delete this file? [Y/other]

これを実行すると、既存のdb.sqlite3を削除し、新しくmigrateしてfixtureを読み込んでくれます。

FAQ

PyCharm上でvirtualenvを認識して名前解決したい

PyCharm > Preferences > Project Interpreter > Python Interpreterで、~/.pyenv/versions/kawaz/bin/pythonを指定すれば良いのですが、このままでは正常に動きません。

理由として、virtualenv環境以下のbinは、各バージョンのPythonへのsymlinkとなっており、これをそのまま読み込ませると、virtualenvs以下のライブラリをPyCharmが認識してくれないという問題が発生します。

非常にdirtyな解決策ですが、実体をvirtualenv下にコピーすることで解決します。

$ cd `pyenv root`/versions # ~/.pyenv/versions
$ cp -f 3.3.3/bin/python kawaz/bin/python3.5
Clone this wiki locally