Shelve sqlite3.OperationalError: ошибка дискового ввода-выводаApache

Ответить
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()

Код: Выделить всё

$ ./my_shelf.py
1
Он создает файл:

Код: Выделить всё

# 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Apache»