[3.14] gh-137113 docs: note readline no longer supported in REPL after 3.13 (GH-137142) (GH-143791)

gh-137113 docs: note readline no longer supported in REPL after 3.13 (GH-137142)

Add a note to the readline module documentation stating that
Python 3.13 and later no longer supports readline in the default REPL,
as per gh-118840. Includes workaround using PYTHON_BASIC_REPL.

Update tutorial to remove the reference, and use a different key to
test things out.
(cherry picked from commit 971f387bbb598a481aa8974ddc7a358459030415)

Signed-off-by: Kuang Yu Heng <yuheng3107@gmail.com>
Co-authored-by: Kuang Yu Heng <yuheng3107@gmail.com>
This commit is contained in:
Miss Islington (bot) 2026-01-14 10:55:52 +01:00 committed by GitHub
parent 95fe86e10f
commit 145879b402
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 6 deletions

View File

@ -394,3 +394,9 @@ support history save/restore. ::
def save_history(self, histfile):
readline.set_history_length(1000)
readline.write_history_file(histfile)
.. note::
The new :term:`REPL` introduced in version 3.13 doesn't support readline.
However, readline can still be used by setting the :envvar:`PYTHON_BASIC_REPL`
environment variable.

View File

@ -34,13 +34,13 @@ status. If that doesn't work, you can exit the interpreter by typing the
following command: ``quit()``.
The interpreter's line-editing features include interactive editing, history
substitution and code completion on systems that support the `GNU Readline
<https://tiswww.case.edu/php/chet/readline/rltop.html>`_ library.
substitution and code completion on most systems.
Perhaps the quickest check to see whether command line editing is supported is
typing :kbd:`Control-P` to the first Python prompt you get. If it beeps, you
have command line editing; see Appendix :ref:`tut-interacting` for an
introduction to the keys. If nothing appears to happen, or if ``^P`` is
echoed, command line editing isn't available; you'll only be able to use
typing a word in on the Python prompt, then pressing Left arrow (or :kbd:`Control-b`).
If the cursor moves, you have command line editing; see Appendix
:ref:`tut-interacting` for an introduction to the keys.
If nothing appears to happen, or if a sequence like ``^[[D`` or ``^B`` appears,
command line editing isn't available; you'll only be able to use
backspace to remove characters from the current line.
The interpreter operates somewhat like the Unix shell: when called with standard