Я пытаюсь расширить оболочку python (я не могу использовать IPython, к сожалению). Мне хотелось бы, чтобы оба ключевых слова заполнили и интерпретировали некоторые пользовательские вводные данные (это не будет действительным python). Но я не могу заставить readline/rlcompleter и InteractiveConsole работать вместе. Для демонстрации проблемы:Есть ли способ объединить readline/rlcompleter и InteractiveConsole в python?
$ python -c "import code; code.InteractiveConsole().interact()"
Python 2.7.10 (default, Jun 1 2015, 18:05:38)
[GCC 4.9.2] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> import readline
>>> import rlcompleter
>>> readline.parse_and_bind("tab: complete")
>>> import string
>>> stri
Вкладка «Ввод» здесь ничего не делает.
$ python
Python 2.7.10 (default, Jun 1 2015, 18:05:38)
[GCC 4.9.2] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import readline
>>> import rlcompleter
>>> readline.parse_and_bind("tab: complete")
>>> import string
>>> stri
Вкладка «Ввод» теперь завершается до «string».
Может ли кто-нибудь объяснить, почему это так, и есть ли способ обойти это?