答案1
另一个 ~/.pythonrc 解决方案:
import readline
readline.write_history_file = lambda *args: None
答案2
从 Python 3.6 开始,您可以使用readline.set_auto_history禁用此功能:
import readline
readline.set_auto_history(False)
答案3
这对我有用。
创建~/.pythonrc
文件:
import os
import atexit
import readline
readline_history_file = os.path.join(os.path.expanduser('~'), '.python_history')
try:
readline.read_history_file(readline_history_file)
except IOError:
pass
readline.set_history_length(0)
atexit.register(readline.write_history_file, readline_history_file)
然后导出:
export PYTHONSTARTUP=~/.pythonrc
答案4
我当前的解决方案(对于最近的 Python 3 版本)阻止默认使用 ~/.python_history 但保留将历史记录显式写入给定文件的可能性(使用 readline.write_history_file(filename) 或 readline.append_history_file(... )) 是在 PYTHONSTARTUP 文件中包含以下内容:
import readline
import time
readline.add_history("# " + time.asctime()) # prevent default use of ~/.python_history
readline.set_history_length(-1) # unlimited
它具有令人愉快的(对我来说)副作用,用解释器的启动时间标记任何明确写入的历史记录。它之所以有效,是因为修复了错误 5845可以看到这里。