为什么使用Python';s'-i';或'-c';选项是否会导致以前会话中的读取行历史记录不可用?

为什么使用Python';s'-i';或'-c';选项是否会导致以前会话中的读取行历史记录不可用?,python,readline,Python,Readline,我正在使用.pythonsetup文件以中所述的方式启用读线历史记录。通常,当我启动新会话时,可以使用以前交互式口译员会话的历史记录 % python >>> # history available... 但是,当使用-i或-c时,过去的历史记录不可用。并不是readline被禁用:历史记录可用于当前会话,但该历史记录不会保存到历史记录文件中 % python -i myscript.py >>> # previous history not availab

我正在使用
.pythonsetup
文件以中所述的方式启用读线历史记录。通常,当我启动新会话时,可以使用以前交互式口译员会话的历史记录

% python
>>> # history available...
但是,当使用-i或-c时,过去的历史记录不可用。并不是readline被禁用:历史记录可用于当前会话,但该历史记录不会保存到历史记录文件中

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

% python -i -c "x = 1"
>>> # previous history not available
这种行为在Python2.6、2.7和3.2中是一致的


有人知道为什么在使用-i或-ic时会禁用以前的读线历史记录吗?当使用-i或-ic时,是否有方法配置readline以使历史可用(并可保存)?

如果您使用:


就我个人而言,我建议无论如何使用它,因为它比默认的解释器优越很多。

我的
python2.6
手册页上说

-我。。。它不读取$PYTHONSTARTUP文件


因为这是您自定义readline行为()的方式,所以当您使用该选项时,它不会生效。

是的,我确实使用了iPython。我在进行Python 3.2开发时遇到了这个问题。iPython的Python3分支需要手动安装,我还没有尝试过。尽管如此,我以前从未注意到这种行为,并认为其他人可能知道。
easy\u install-3.2http://archive.ipython.org/release/0.11/py3/ipython-0.11-py3.zip
Grin。很容易。(在UbuntuNatty下,这个命令很容易安装。)确实如此——我错过了。这澄清了我的python已经启用了readline;这是我使用
.pythonstartup
启用的历史记录。谢谢
ipython -i myscript.py