2008年10月25日

Terminal上でのPythonのコード補完

コードの補完ができると結構便利です。
コード補完の設定は Python チュートリアルのキー割り当て に記述があります。
readlineの機能を利用します。
$HOME以下に.pystartupのような名前で以下のファイルを作成します。

import atexit
import os
import readline
import rlcompleter

historyPath = os.path.expanduser("~/.pyhistory")

def save_history(historyPath=historyPath):
    import readline
    readline.write_history_file(historyPath)

if os.path.exists(historyPath):
    readline.read_history_file(historyPath)

atexit.register(save_history)
readline.parse_and_bind('Tab: complete')
# Mac OS X 10.5(Leopard)のデフォルトの場合のみ以下
# readline.parse_and_bind ("bind ^I rl_complete")

del os, atexit, readline, rlcompleter, save_history, historyPath
.bashrc等に以下を記述します。
export PYTHONSTARTUP=${HOME}/.pystartup
Mac OS X 10.5(Leopard)のreadlineはGNU readlineでないです。
GNU readlineと同様の動作にしたい場合は他からGNU readlineをインストールする必要があります。
Finkの場合は readline5-shlibs をインストールした後で Python の readline モジュールをインストールする必要があります。
sudo fink install readline5-shlibs
curl -o http://pypi.python.org/packages/source/r/readline/readline-2.5.1.tar.gz
tar zxvf readline-2.5.1.tar.gz
cd readlien-2.5.1
sudo python setup.py install
ためしにPythonインタプリタをTerminalで起動して以下の動作をためしてみてください。
import os
os.<TAB>
コード補完が効くようになります。

2008年10月18日

Alert! Cover was previously removed.

久しぶりにDellサーバのメモリ交換とかやったら「Alert! Cover was previously removed.」とか出た。
なんだっけ?という感じになってしばらく悩んでしまったのでメモしておく。
これはメモリ交換なんのためにカバーを開けた後で発生する警告メッセージ。
起動すると「F1でSKIP起動するかF2で設定しやがれ」という警告がでる。
F2で設定しないと毎回警告でやがるので、F2で設定することに。
設定の「System Security」で「Chassis Intrusion」を選択し、「Disabled」になっているのを「Enabled」か「Enabled-Silent」に変更すれば警告はでなくなる。

カバー開けたら設定しないとけいないので注意。

2008年10月6日

Mac OS X 10.5 で crochet を動かしてみる

crochetとは@showyouが作成している、Twitter用クライアント。
Pythonで作成されている。

以前も動作させたことがあるのだけどメモってなかったので今回は動かすまでをメモしておく。
参考にするサイト
crochet紹介 - Showyou@hatena Mac で crochet というか wxPython で作られたアプリを動かすお話 - yano3の日記
wxPythonのインストール
http://sourceforge.net/projects/wxpython/
http://downloads.sourceforge.net/wxpython/wxPython2.8-osx-unicode-2.8.9.1-universal-py2.5.dmg

バイナリなのでダブルクリックすれば良い。
simplejsonのインストール
http://code.google.com/p/simplejson/
http://pypi.python.org/pypi/simplejson

tar xvfz simplejson-2.0.1.tar.gz
cd simplejson-2.0.1
sudo python setup.py install
PILのインストール
http://www.pythonware.com/products/pil/
tar xvfz Imaging-1.1.6.tar.gz
cd Imaging-1.1.6
sudo python setup.py install
crochet
svn export -r HEAD http://svn.coderepos.org/share/lang/python/crochet
cd crochet
.chat/twdata の中にユーザ名とパスワードを設定して起動する。
./chat_all.py
起動して、投稿まではできた。

で、本当の目的は
エラー - showyouの日記とhamaの成長記録 - はてなグループ::ついったー部
に記述のある内容の再現と調査だったのですが、こういう時にかぎって再現しねー
AquaSKKが起動してると落る現象と、終了するとPy_Finalizeよばれる所でエラーの出る現象は出たけどcrochetの問題ではないような。
とりあえずしばらく動作させないと再現しなそう。