-
Notifications
You must be signed in to change notification settings - Fork 9
開発環境構築 for Mac OS X
Xcodeの最新版をMac App Store
から導入してください
$ xcode-select --install
ダイアログが出るのでインストールをクリックしましょう
ソフトウェアのインストールに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
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
Kawaz3rd
は現時点でPython3.3.5での開発を前提にしております。
$ pyenv install 3.3.5
$ pyenv global 3.3.5
Githubからリポジトリをcloneしましょう。
$ cd ~/
$ git clone -b develop --recursive [email protected]:kawazrepos/Kawaz3rd.git
今後、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に紐付ける
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
django
はtox
を使用する関係で、個別に導入する必要があります。何とかしたい。
念のため、今から利用しようとしている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
django-compress
でLESSやCoffeeScriptを使ったビルドを行うために導入が必要です。
以下のインストラクションを行ってください
Google CalendarやTwitter連携を使うためにAPIキーを復号する必要があります。
リポジトリには暗号化されたAPIキーが含まれていて、復号には復号用のパスワードが必要です。
復号用パスワードは、KeePassに入っているので、ゼーレに聞いてください。
$ brew install gpg
$ cd kawaz3rd
$ ./utils/decrypt-files $PASSWORD
複合後、config/activities
などに.json
ファイルが生成されていれば正常です。
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実装になっています。
開発用の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
http://localhost:8000/admin
でAdminページの利用ができます。
ID/passwordは、データベースの初期化時に設定したものを利用してください。
デバッグ用にテストデータが用意されています。
$ python manage.py loaddata debug
でfixtureを導入できます。
ただし、Fixtureを導入すると、初期化の時に作ったユーザーデータが上書きされ、テスト用のユーザーが作成されてしまいます。 そのため、作成したユーザーに変わって、fixtureのユーザーでログインしてデバッグしてください。 adminページに入るには、ユーザー名:system、パスワード:passwordでログインできます。
最新版は develop ブランチに実装されています。
$ git checkout develop
$ git pull
これで最新版が入ります。
サーバーサイドエンジニアの気分により、必要なライブラリが変わる可能性があります。
その場合、下記を再実行してください。
$ pip install -r config/requirements.txt
最新版ではスキーマが変更されている可能性があります。何かおかしかったら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を読み込んでくれます。
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