-
Anonymous
Shelve sqlite3.OperationalError: ошибка дискового ввода-вывода
Сообщение
Anonymous »
Это Fedora 43. Python 3.14
Я могу без ошибок создать и получить полку в командной строке:
Код: Выделить всё
#!/usr/bin/env python
import shelve
shelf = shelve.open('/tmp/my_shelf', flag='c', writeback=True)
shelf['a'] = 1
shelf.close()
shelf = shelve.open('/tmp/my_shelf', flag='c', writeback=True)
print (shelf['a'])
shelf.close()
Он создает файл:
Код: Выделить всё
# ll /tmp/my_shelf*
-rw-r--r--. 1 cpn cpn 12288 Feb 4 16:24 /tmp/my_shelf
# ll -d /tmp
drwxrwxrwt. 29 root root 5640 Feb 4 16:24 /tmp
Но при запуске как CGI-скрипт из браузера в
http://localhost/cgi-bin/tutorial/my_shelf.py я получаю это sqlite3.OperationalError: ошибка дискового ввода-вывода:
Код: Выделить всё
[Wed Feb 04 16:25:09.868813 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: Traceback (most recent call last):
[Wed Feb 04 16:25:09.868919 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: File "/usr/lib64/python3.14/dbm/sqlite3.py", line 83, in _execute
[Wed Feb 04 16:25:09.868965 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: return closing(self._cx.execute(*args, **kwargs))
[Wed Feb 04 16:25:09.869008 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
[Wed Feb 04 16:25:09.869042 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: sqlite3.OperationalError: disk I/O error
[Wed Feb 04 16:25:09.869049 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py:
[Wed Feb 04 16:25:09.869102 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: During handling of the above exception, another exception occurred:
[Wed Feb 04 16:25:09.869109 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py:
[Wed Feb 04 16:25:09.869139 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: Traceback (most recent call last):
[Wed Feb 04 16:25:09.869239 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: File "/var/www/cgi-bin/tutorial/my_shelf.py", line 4, in
[Wed Feb 04 16:25:09.869292 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: shelf = shelve.open('/tmp/my_shelf', flag='c', writeback=True)
[Wed Feb 04 16:25:09.869340 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: File "/usr/lib64/python3.14/shelve.py", line 250, in open
[Wed Feb 04 16:25:09.869390 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: return DbfilenameShelf(filename, flag, protocol, writeback)
[Wed Feb 04 16:25:09.869440 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: File "/usr/lib64/python3.14/shelve.py", line 227, in __init__
[Wed Feb 04 16:25:09.869496 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: Shelf.__init__(self, dbm.open(filename, flag), protocol, writeback)
[Wed Feb 04 16:25:09.869537 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: ~~~~~~~~^^^^^^^^^^^^^^^^
[Wed Feb 04 16:25:09.869595 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: File "/usr/lib64/python3.14/dbm/__init__.py", line 95, in open
[Wed Feb 04 16:25:09.869635 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: return mod.open(file, flag, mode)
[Wed Feb 04 16:25:09.869667 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: ~~~~~~~~^^^^^^^^^^^^^^^^^^
[Wed Feb 04 16:25:09.869718 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: File "/usr/lib64/python3.14/dbm/sqlite3.py", line 144, in open
[Wed Feb 04 16:25:09.869761 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: return _Database(filename, flag=flag, mode=mode)
[Wed Feb 04 16:25:09.869816 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: File "/usr/lib64/python3.14/dbm/sqlite3.py", line 77, in __init__
[Wed Feb 04 16:25:09.869844 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: self._execute(BUILD_TABLE)
[Wed Feb 04 16:25:09.869879 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: ~~~~~~~~~~~~~^^^^^^^^^^^^^
[Wed Feb 04 16:25:09.869933 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: File "/usr/lib64/python3.14/dbm/sqlite3.py", line 85, in _execute
[Wed Feb 04 16:25:09.869957 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: raise error(str(exc))
[Wed Feb 04 16:25:09.869987 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: dbm.sqlite3.error: disk I/O error
[Wed Feb 04 16:25:09.877979 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] End of script output before headers: my_shelf.py
Чего мне не хватает?
Подробнее здесь:
https://stackoverflow.com/questions/798 ... -i-o-error
1770288880
Anonymous
Это Fedora 43. Python 3.14
Я могу без ошибок создать и получить полку в командной строке:
[code]#!/usr/bin/env python
import shelve
shelf = shelve.open('/tmp/my_shelf', flag='c', writeback=True)
shelf['a'] = 1
shelf.close()
shelf = shelve.open('/tmp/my_shelf', flag='c', writeback=True)
print (shelf['a'])
shelf.close()
[/code]
[code]$ ./my_shelf.py
1
[/code]
Он создает файл:
[code]# ll /tmp/my_shelf*
-rw-r--r--. 1 cpn cpn 12288 Feb 4 16:24 /tmp/my_shelf
# ll -d /tmp
drwxrwxrwt. 29 root root 5640 Feb 4 16:24 /tmp
[/code]
Но при запуске как CGI-скрипт из браузера в http://localhost/cgi-bin/tutorial/my_shelf.py я получаю это sqlite3.OperationalError: ошибка дискового ввода-вывода:
[code][Wed Feb 04 16:25:09.868813 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: Traceback (most recent call last):
[Wed Feb 04 16:25:09.868919 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: File "/usr/lib64/python3.14/dbm/sqlite3.py", line 83, in _execute
[Wed Feb 04 16:25:09.868965 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: return closing(self._cx.execute(*args, **kwargs))
[Wed Feb 04 16:25:09.869008 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
[Wed Feb 04 16:25:09.869042 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: sqlite3.OperationalError: disk I/O error
[Wed Feb 04 16:25:09.869049 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py:
[Wed Feb 04 16:25:09.869102 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: During handling of the above exception, another exception occurred:
[Wed Feb 04 16:25:09.869109 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py:
[Wed Feb 04 16:25:09.869139 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: Traceback (most recent call last):
[Wed Feb 04 16:25:09.869239 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: File "/var/www/cgi-bin/tutorial/my_shelf.py", line 4, in
[Wed Feb 04 16:25:09.869292 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: shelf = shelve.open('/tmp/my_shelf', flag='c', writeback=True)
[Wed Feb 04 16:25:09.869340 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: File "/usr/lib64/python3.14/shelve.py", line 250, in open
[Wed Feb 04 16:25:09.869390 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: return DbfilenameShelf(filename, flag, protocol, writeback)
[Wed Feb 04 16:25:09.869440 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: File "/usr/lib64/python3.14/shelve.py", line 227, in __init__
[Wed Feb 04 16:25:09.869496 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: Shelf.__init__(self, dbm.open(filename, flag), protocol, writeback)
[Wed Feb 04 16:25:09.869537 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: ~~~~~~~~^^^^^^^^^^^^^^^^
[Wed Feb 04 16:25:09.869595 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: File "/usr/lib64/python3.14/dbm/__init__.py", line 95, in open
[Wed Feb 04 16:25:09.869635 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: return mod.open(file, flag, mode)
[Wed Feb 04 16:25:09.869667 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: ~~~~~~~~^^^^^^^^^^^^^^^^^^
[Wed Feb 04 16:25:09.869718 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: File "/usr/lib64/python3.14/dbm/sqlite3.py", line 144, in open
[Wed Feb 04 16:25:09.869761 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: return _Database(filename, flag=flag, mode=mode)
[Wed Feb 04 16:25:09.869816 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: File "/usr/lib64/python3.14/dbm/sqlite3.py", line 77, in __init__
[Wed Feb 04 16:25:09.869844 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: self._execute(BUILD_TABLE)
[Wed Feb 04 16:25:09.869879 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: ~~~~~~~~~~~~~^^^^^^^^^^^^^
[Wed Feb 04 16:25:09.869933 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: File "/usr/lib64/python3.14/dbm/sqlite3.py", line 85, in _execute
[Wed Feb 04 16:25:09.869957 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: raise error(str(exc))
[Wed Feb 04 16:25:09.869987 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] AH01215: stderr from /var/www/cgi-bin/tutorial/my_shelf.py: dbm.sqlite3.error: disk I/O error
[Wed Feb 04 16:25:09.877979 2026] [cgid:error] [pid 314989:tid 315128] [client 127.0.0.1:46094] End of script output before headers: my_shelf.py
[/code]
Чего мне не хватает?
Подробнее здесь: [url]https://stackoverflow.com/questions/79883038/shelve-sqlite3-operationalerror-disk-i-o-error[/url]