[python] zmatený python?
Petr Mach
gsl na seznam.cz
Sobota Červen 11 14:19:27 CEST 2005
Mám takovou nevážnou záhadu. PĂšu program, kterĂ˝ pouĹľĂvá
SQLite a teď testuju jeho oddolnost a robustnost. Mimo jiné
pĹ™i prvotnĂm plnÄ›nĂ databáze daty (jejĂ inicializace)
klinu python, smaĹľu soubor databáze a spustĂm ji znovu.
Teoreticky, protože je ten soubor smazaný, by se nemělo
vĹŻbec nic dĂt, program nemá jak vÄ›dÄ›t, Ĺľe pĹ™i minulĂ©m
spuštěnà se něco nepovedlo, jenž to tak nenà a on spadne
na vĂ˝jimku. PĹ™i dalšĂm spuštÄ›nĂ pak uĹľ funguje jak má.
NejvÄ›tšà záhadou je na tom ta vĂ˝jimka. PosĂlám ji jako
pĹ™Ălohu. Nechapu, jak prikaz:
import sqlite as db
self.db=db.connect(dbfile, encoding="utf-8")
Muze lezt do:
File "/usr/lib/python2.3/site-packages/PIL/__init__.py", line 61, in
connect
Zvlast kdyz knihovnu PIL v programu vubec nepouzivam a
predevsim, uvedeny soubor ma jen 13 zakomentovanych radku.
Napada nekoho, proc Python hlasi tento falesny soubor?
Dalsi uvedeny soubor:
File
"/dar/tmp/python-sqlite-0.5.0-1.1.fc3.rf-root//usr/lib/python2.3/site-packages/sqlite/main.py"
je uz uplne mimo, neco jako /dar/tmp/python-sqlite-0.5.0-1.1.fc3.rf-root/
na pocitaci vubec nemam. Odkud Python bere ty cesty
kdyz se neridi skutecnosti?
Je to jen pro teoreticke zamysleni, prakticky me to
nijak netrapi. Jen bych rad vedel, co se odehrava na
pozadi.
Petr Mach
------------- daląí část ---------------
[wraith na frodo erzety-svr]$ ./init
050611-135425.196 LOG[init] DB file is: /home/wraith/tmp/l1.db
050611-135428.198 LOG[DB] [fce] __init__
Traceback (most recent call last):
File "svr.py", line 72, in ?
server=Server(("", svrPort), Handler, dbFile)
File "/mnt/flash/data/projekty/erzety/svr/s_main.py", line 68, in __init__
self.db=Db(self.log, dbFile)
File "/mnt/flash/data/projekty/erzety/svr/s_db.py", line 21, in __init__
self.db=db.connect(dbfile, encoding="utf-8")
File "/usr/lib/python2.3/site-packages/PIL/__init__.py", line 61, in connect
File "/dar/tmp/python-sqlite-0.5.0-1.1.fc3.rf-root//usr/lib/python2.3/site-packages/sqlite/main.py", line 436, in __init__
_sqlite.DatabaseError: file is encrypted or is not a database
Exception exceptions.AttributeError: <exceptions.AttributeError instance at 0xb7f960ec> in <bound method Connection.__del__ of <sqlite.main.Connection instance at 0xb7c26fcc>> ignored
Daląí informace o konferenci Python