長門有希Pythonプロンプト Ver.2
以前長門有希Pythonプロンプト - yuyarinの日記という記事で長門有希のPythonプロンプトを紹介したが、先日少し改良したので報告を。
環境
- OS
- Windows Vista Home Edition
- Python
- Python 日本語環境用インストーラ(Win32)(ver.2.3.4)
手順
Pythonのインストールディレクトリ下のLib\idlelib\にあるファイルを次の手順で書き換える。注意:コードを書き換えてから2回再起動しないと変更が反映されないようです。
1.PyShell.pyの2行目(空行)にエンコード指定を書いてutf-8で保存。
# -*- coding: utf-8 -*-
2.PyShell.pyの700行目にあるウィンドウタイトルを書き換える。
shell_title = "Nagato Python Shell"
3.PyShell.pyの807, 820、1208行目の">>> "を"YUYA.K> "など自分の名前に書き換える(コメントは変更前の行)。
# line 807 #sys.ps1 = ">>> " sys.ps1 = "YUYA.K> " # line 820 #sys.ps1 = "[DEBUG ON]\n>>> " sys.ps1 = "[DEBUG ON]\nYUYA.K> " #line 1208 #sys.ps1 = '>>> ' sys.ps1 = "YUYA.K> "
4.PyShell.pyの895行目(バージョン情報表示部の下)に長門から起動メッセージを追加する(コメントは前後の行)。前回は"self.console.write"としていたが、今回は"self.stdout.write"とする。これがポイント。
#line892=self.write("Python %s on %s\n%s\nIDLE %s %s\n" % #line893= (sys.version, sys.platform, self.COPYRIGHT, #line894= idlever.IDLE_VERSION, nosub)) self.stdout.write(u'YUKI.N> みえてる?\nYUKI.N> うまく言語化できない。情報の伝達に齟齬が発生するかもしれない。でも、聞いて。') #line896=self.showprompt()
5.Pythonのインストールディレクトリ下のLib\idlelib\にnagato.gifを保存する。
6.EditorWindow.pyの162行目以降に以下を追加(コメントは前後の行)。
#line161=text_frame.pack(side=LEFT, fill=BOTH, expand=1) self.nagato = PhotoImage(file='C:\\Python23\\Lib\\idlelib\\nagato.gif') text.image_create('1.0', image=self.nagato) text.pack(side=TOP, fill=BOTH, expand=1) #line165=text.focus_set()
7.run.pyのruncode()内247行目に"sys.stdout.write("YUKI.N> ")"を追加する。
#line244=def runcode(self, code): try: self.usr_exc_info = None sys.stdout.write("YUKI.N> ") exec code in self.locals
8.PyShall.pyの940行目付近、Ctrl+Cの中断処理を書き換える。
self.stdout.write("YUKI.N> ") self.interp.write(u"処理は中断された。あなたの指示。\n")
課題など
- 複数行の結果を表示する場合1行目だけ "YUKI.N> " が表示される。
- エラーメッセージをそれっぽく書き換える。
- 'おはよう有希' と言っても 'おはようゆうやりん' と返してくれない。
- というかエコーしかしてくれない。
- defしたときに「わかった」とか言ってくれたら嬉しいよね。