PythonとかDjangoまわりの環境を整えた

Erlang使ってる人がよく併用しているので、僕も使ってみようと思う。
Python触ったこと無いからわからないけど、著名なツールって多分こんな感じ。

  • pythonz : いろんなバージョンのPythonをインストール
  • virtualenv : Pythonのバージョンを切り替える仮想環境
  • virtualenvwrapper : もっと簡単に切り替えれるようにしてくれる
  • pip : Pythonモジュールの管理システム
  • Django : でっかいWAF
  • Ansible : プロビジョニングツール
  • Supervisor : プロセスの死活監視
  • Fabric : デプロイツール

なんでも揃ってる。
どれも使ったこと無いけど、とりあえずリスト内包表記は好き。

pythonのバージョン管理機能とか

curl -kL https://raw.github.com/saghul/pythonz/master/pythonz-install | bash
echo ' -s $HOME/.pythonz/etc/bashrc  && source $HOME/.pythonz/etc/bashrc' >> ~/.zshrc
source ~/.zshrc
sudo pip install virtualenv{,wrapper}
pythonz install 2.7.5

新規のDjangoアプリケーションを作る場合

django-admin.py startproject hoge
cd hoge && django-admin.py startapp fuga
python manage.py syncdb
python manage.py runserver

既存のDjangoアプリケーションがあったら

pip freeze -l > requirements.txt
mkvirtualenv -r requirements.txt -p ~/.pythonz/pythons/CPython-2.7.5/bin/python myproject

新しいモジュールをプロジェクトに入れたいときは、requirements.txtにモジュール名とバージョンを書いた後

pip install -r requirements.txt

あとはvirtualenvwrappeのコマンドを叩いて環境を切り替えるだけ。
開発をはじめるときは

workon myproject

システムpythonに戻すときは

deactivate

とりあえずミニマムなアプリケーションを作って、AnsibleとかSupervisorとかfabricをひと通り使ってみたい。
参考
Mac で Pythonz + virtualenv{,wrapper} を使った Python 環境構築 | CUBE SUGAR STORAGE
コマンドリファレンス — virtualenvwrapper 3.5 documentation