Pythonのcodeモジュールを使うと、任意のタイミングで対話コンソールを起動できる。
readline、rlcompleterモジュールを使うことで、対話コンソール実行時に補完を有効にすることもできる。
以下、サンプルコード。
console.py
# coding: utf-8 import code import readline import rlcompleter def hello(): print("Hello, world!") def main(): print(u"対話コンソールを起動します...") # コンソール起動時の変数を用意 variables = globals() # Tabによる補完を有効にする readline.set_completer(rlcompleter.Completer(variables).complete) readline.parse_and_bind("tab:complete") # 対話コンソールを開始 code.interact(local=variables) if __name__ == '__main__': main()
実行結果
$ python console.py 対話コンソールを起動します... Python 2.7.3 (default, Apr 20 2012, 22:39:59) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> hello() Hello, world! >>>