如何在ptpython控制台中读取历史记录?
我一直在试图弄清楚如何在ptpython控制台中保存和读取Python命令的历史记录,但一直未能做到这一点。到目前为止,我所做的一切努力都是为了改变现状。然而,我仍然无法阅读我的历史 我只想能够按下↑ 和↓ 从上一个控制台会话(而不是当前的控制台会话)中遍历Python命令的箭头。以下是我当前在$PYTHONSTARTUP文件中的内容: 我的$PYTHONSTARTUP变量是:如何在ptpython控制台中读取历史记录?,python,python-3.x,console,ptpython,Python,Python 3.x,Console,Ptpython,我一直在试图弄清楚如何在ptpython控制台中保存和读取Python命令的历史记录,但一直未能做到这一点。到目前为止,我所做的一切努力都是为了改变现状。然而,我仍然无法阅读我的历史 我只想能够按下↑ 和↓ 从上一个控制台会话(而不是当前的控制台会话)中遍历Python命令的箭头。以下是我当前在$PYTHONSTARTUP文件中的内容: 我的$PYTHONSTARTUP变量是: $ echo $PYTHONSTARTUP /Users/[redacted]/.pystartup 我使用的是P
$ echo $PYTHONSTARTUP
/Users/[redacted]/.pystartup
我使用的是Python 3.7.3、macOS 10.14.6和ptpython 2.0.4
谢谢如果您检查源代码,那么您会看到选项history\u filename=
顺便说一句:如果文件夹~/.ptpython不存在,则必须在运行代码之前创建它。如果检查源代码,则会看到选项history\u filename=
顺便说一句:如果文件夹~/.ptpython不存在,那么您必须在运行代码之前创建它。至于我,您运行sys.exitembed,因此它不能在这一行之后运行代码,因此它不能读取历史记录。您必须在sys.exitem之前阅读它。如果你把print放在sys.exitembed之后,你会看到它从未打印过。至于我,你运行sys.exitembed,所以它不能在这一行之后运行代码,所以它不能读取历史记录。您必须在sys.exitem之前阅读它。如果您在sys.exitembed之后放置print,那么您将看到它从未打印过。我认为这是有效的!让我使用它一点,以确保一切正常运行,然后我可以标记它为正确的。我认为这是有效的!让我使用它一点,以确保一切正常运行,然后我可以标记它为正确的。
$ echo $PYTHONSTARTUP
/Users/[redacted]/.pystartup
embed(globals(), locals(), history_filename=historyPath)
import os
try:
from ptpython.repl import embed
except ImportError:
print('ptpython is not available: falling back to standard prompt')
else:
historyPath = os.path.expanduser("~/.ptpython/history")
embed(globals(), locals(), history_filename=historyPath)