Python インタラクティブシェルで補完を使う

IPython などでは Tab 補完が効くが、Pythonインタラクティブシェルではデフォルトでは補完が効かない。これを効かせるようにする方法。公式のドキュメント より引用。

>>> import readline, rlcompleter
>>> readline.parse_and_bind('tab:complete')

こうすれば Tab でメンバ関数などの補完が可能になる。初期化ファイルに以下を書き込んでおけば、はじめから補完が効く状態でシェルが立ち上がる。

try:
    import readline
except ImportError:
    print("Module readline not available.")
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")