Closed
Description
Bug report
Bug description:
When using new Python 3.13 pyrepl
on a read-only file system, attempting to exit the REPL raises the following exception: OSError: [Errno 30] Read-only file system: '/root/.python_history'
. The same setup works with Python 3.12.
dev:/home/dev$ docker run -it --read-only python:3.12-slim-bookworm python3
Python 3.12.7 (main, Nov 12 2024, 02:26:49) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('hello')
hello
>>> exit()
dev:/home/dev$ docker run -it --read-only python:3.13-slim-bookworm python3
Python 3.13.1 (main, Dec 4 2024, 20:40:24) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('hello')
hello
>>> exit()
Exception ignored in atexit callback <function register_readline.<locals>.write_history at 0x7f56689a3600>:
Traceback (most recent call last):
File "<frozen site>", line 574, in write_history
File "/usr/local/lib/python3.13/_pyrepl/readline.py", line 453, in write_history_file
f = open(os.path.expanduser(filename), "w",
OSError: [Errno 30] Read-only file system: '/root/.python_history'
CPython versions tested on:
3.12, 3.13
Operating systems tested on:
Linux
Linked PRs
- gh-128066: Fixed PyREPL history saving on read-only file systems #128088
- gh-128066: Properly handle history file writes for RO fs on PyREPL #134380
- [3.14] gh-128066: Properly handle history file writes for RO fs on PyREPL (gh-134380) #134385
- [3.13] gh-128066: Properly handle history file writes for RO fs on PyREPL (gh-134380) #134386