为什么使用Python的’-i’或’-c’选项导致之前会话的readline历史记录不可用?

我正在使用.pythonsetup文件以readline module docs中描述的方式启用readline历史记录.通常,当我启动新会话时,可以使用先前交互式解释器会话的历史记录.

% python
>>> # history available...

但是,使用-i或-c时,过去的历史记录不可用.这不是禁用readline:历史记录可用于当前会话,但该历史记录不会保存到历史记录文件中.

% python -i myscript.py
>>> # previous history not available

% python -i -c "x = 1"
>>> # previous history not available

这种行为在Python 2.6,2.7和3.2中是一致的.

有谁知道为什么在使用-i或-ic时禁用了以前的readline历史记录?是否有一种方法可以配置readline以在使用-i或-ic时使历史记录可用(并且可以保存)?

解决方法:

我的python2.6的手册页说

-i … It does not read the $PYTHONSTARTUP file.

由于这是您自定义readline行为(http://docs.python.org/py3k/library/readline.html#example)的方法,因此在使用该选项时它不会生效.

上一篇:iPython不读取〜/ .inputrc


下一篇:13 CSS样式权重问题