PythonとDjangoを使うときに押さえとくと良いもの

社内向け。
tokibitoの知識が偏ってるので、もっといろいろ知りたいなら社内チャットで他の人にも聞くこと。

Python

easy_install

setuptoolsかdistributeというパッケージで使えるコマンド。
@aodag 曰くsetuptools使わずに、distribute使えという話。
インストールはこんな感じ。

$ curl -O http://python-distribute.org/distribute_setup.py
$ python distribute_setup.py

Welcome to Distribute’s documentation! — Distribute documentation

pip

パッケージのインストールに使う。後述のvirutualenvとかを使うならこれ。
インストールスクリプトで入れるか、easy_installなどで入れる。

$ sudo easy_install pip
virtualenv

仮想環境。プロジェクトごとにモジュールセットを変えたい時とかに使う。

$ sudo pip install virtualenv virtualenvwrapper

buildoutとかも見ておくべき。

ipython

手っ取り早くコード補完とか、エラー時のカラー表示とか使えるのでインストールしとこう。

$ pip install ipython
smtpd

標準モジュールにSMTPサーバがある。開発時などに使うと便利。

$ python -m smtpd -n -c DebuggingServer localhost:5025

こんな感じでモジュール指定で起動するか、ファイル保存などの拡張を施したスクリプトを使ったりするなど。
debugsmtpd.py

SimpleHTTPServer/CGIHTTPServer

HTMLの記述やCGIの開発でWebサーバの用意が面倒ならこれを使おう。

$ python -m SimpleHTTPServer
$ python -m CGIHTTPServer
pdb

停止したい位置にpdbのコードを仕込む。

import pdb; pdb.set_trace()

サードパーティのpudb使った方がipythonなどを使えて良いという話。

Django

django-command-extensions

最低限 runserver_plus は使ってみる。
Google Code Archive - Long-term storage for Google Code Project Hosting.

$ pip install django-extensions werkzeug

settings.pyのINSTALLED_APPSに 'django_extensions' を追加。
manage.pyコマンドがたくさん増える。

$ python manage.py runserver_plus

エラー時のデバッガで対話シェルを使えたりするので使おう。
テンプレートのエラーの場合には、テンプレート上の該当箇所の表示を行ってくれないので、 runserver のほうでデバッグすると良い。

django-debug-toolbar

SQLやテンプレートのコンテキストを調べたりするときに使う。
http://robhudson.github.com/django-debug-toolbar/

$ pip install django-debug-toolbar

settings.pyのINSTALLED_APPSとMIDDLEWARE_CLASSES, INTERNAL_IPS を設定する。
継承した設定でのみ有効にするなら、以下のような書き方が良いかも。

MIDDLEWARE_CLASSES = list(MIDDLEWARE_CLASSES) + [
  'debug_toolbar.middleware.DebugToolbarMiddleware',
]

INTERNAL_IPS = (
  '127.0.0.1',
)

INSTALLED_APPS = list(INSTALLED_APPS) + [
  'debug_toolbar',
]

クエリ発行が多いページだと、debug-toolbarの表示が極端に重くなるので注意。

社内で使われてるモジュールなど

社内ライブラリ(公開されてるもの)と社員などが作ってるもの。

他にも多数あるので、チャットで聞くなり、社内リポジトリ見るべし。