Das listet bei mir ganz genau das gleiche auf.
Ich habe anscheinend doch noch nicht alle Reste von den selbstgebauten sqlite/pysqlite-Versionen gelöscht. Wie kann ich denn sicherstellen, dass ich alles gelöscht habe? Bzw. woher weiß ich, was wo hinkopiert wurde?
Python und pysqlite wollen nicht miteinander
Die setup.py Skripte sind beim Installieren normalerweise recht "redseelig". Ist zwar nicht die schönste Variante, aber nochmal installieren und schauen wo was hin kopiert wird, hilft vielleicht.
Hast Du das eigene `pysqlite2` über ein bereits installiertes Paket gebügelt? Dann reicht es vielleicht schon das Paket nochmal zu installieren.
Hast Du das eigene `pysqlite2` über ein bereits installiertes Paket gebügelt? Dann reicht es vielleicht schon das Paket nochmal zu installieren.
-
- User
- Beiträge: 21
- Registriert: Sonntag 16. April 2006, 12:48
Ja, ich habe über ein bestehendes Paket installiert. Aber das Paket habe ich mittlerweile öfter vollständig entfernt, neu runtergeladen, und drüberinstalliert (per apt-get), als ich zählen kann.
Der interessante Part der Ausgabe von setup.py ist
Der interessante Part der Ausgabe von setup.py ist
Es ist also alles in /usr/lib/python2.4/site-packages/pysqlite2 und wenn ich da ein rm -r pysqlite2 setze und das Paket nochmal drüberinstalliere, tut sich bei der Fehlermeldung leider gar nichts.copying build/lib.linux-i686-2.4/pysqlite2/__init__.py -> /usr/lib/python2.4/site-packages/pysqlite2
copying build/lib.linux-i686-2.4/pysqlite2/dbapi2.py -> /usr/lib/python2.4/site-packages/pysqlite2
copying build/lib.linux-i686-2.4/pysqlite2/test/__init__.py -> /usr/lib/python2.4/site-packages/pysqlite2/test
copying build/lib.linux-i686-2.4/pysqlite2/test/dbapi.py -> /usr/lib/python2.4/site-packages/pysqlite2/test
copying build/lib.linux-i686-2.4/pysqlite2/test/factory.py -> /usr/lib/python2.4/site-packages/pysqlite2/test
copying build/lib.linux-i686-2.4/pysqlite2/test/hooks.py -> /usr/lib/python2.4/site-packages/pysqlite2/test
copying build/lib.linux-i686-2.4/pysqlite2/test/regression.py -> /usr/lib/python2.4/site-packages/pysqlite2/test
copying build/lib.linux-i686-2.4/pysqlite2/test/transactions.py -> /usr/lib/python2.4/site-packages/pysqlite2/test
copying build/lib.linux-i686-2.4/pysqlite2/test/types.py -> /usr/lib/python2.4/site-packages/pysqlite2/test
copying build/lib.linux-i686-2.4/pysqlite2/test/userfunctions.py -> /usr/lib/python2.4/site-packages/pysqlite2/test
Es müsste da irgendwo noch eine `_sqlite.so` geben. Vielleicht hast Du davon noch eine "falsche" irgendwo rumliegen!?
-
- User
- Beiträge: 21
- Registriert: Sonntag 16. April 2006, 12:48
Ja, die ist auch in /pysqlite2, die habe ich allerdings ebenfalls gelöscht. Nachdem ich dann python-pysqlite2 wieder installiert habe, war sie wieder, da, sollte also die richtige Version sein.
ldd _sqlite.so ergibt
linux-gate.so.1 => (0xffffe000)
libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0xb7ecf000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7ebd000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7d8e000)
/lib/ld-linux.so.2 (0x80000000)
Kann es an /usr/lib/libsqlite3.so.0 liegen?
ldd _sqlite.so ergibt
linux-gate.so.1 => (0xffffe000)
libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0xb7ecf000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7ebd000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7d8e000)
/lib/ld-linux.so.2 (0x80000000)
Kann es an /usr/lib/libsqlite3.so.0 liegen?
@ blackjack:
das sollte deine frage beantworten...Nachdem ich dann python-pysqlite2 wieder installiert habe, war sie wieder, da, sollte also die richtige Version sein.
http://www.cs.unm.edu/~dlchao/flake/doom/
Nein das beantwortet meine Frage nicht. Ich fragte nach der `/usr/lib/libsqlite3.so.0` und nicht der `_sqlite.so`.
-
- User
- Beiträge: 21
- Registriert: Sonntag 16. April 2006, 12:48
Die ist von libsqlite3-0
Ich habe jetzt nochmals ALLES, was mit sqlite zusammenhängt, vollständig entfernt und installiere jetzt gerade python nochmal.
Alles, was ich dann im Anschluss machen muss, ist python-pysqlite2 zu installieren, richtig? Er installiert dann noch die Pakete libsqlite3-0 und python2.4-pysqlite mit, und dann sollte doch eigentlich alles funktionieren. Aber der Fehler bleibt?!
Ich habe jetzt nochmals ALLES, was mit sqlite zusammenhängt, vollständig entfernt und installiere jetzt gerade python nochmal.
Alles, was ich dann im Anschluss machen muss, ist python-pysqlite2 zu installieren, richtig? Er installiert dann noch die Pakete libsqlite3-0 und python2.4-pysqlite mit, und dann sollte doch eigentlich alles funktionieren. Aber der Fehler bleibt?!
-
- User
- Beiträge: 21
- Registriert: Sonntag 16. April 2006, 12:48
Habs geschafft
Wo genau der Fehler war, weiß ich nicht, aber nachdem ich alles, was *sqlite* im Namen hatte, mit dem Paketmanager entfernt habe und die neuesten Versionen aus den sources neukompiliert habe (vorher in setup.cfg die dirs anpassen; /usr/local/include und /usr/local/lib), hats funktioniert, NACHDEM ich folgendes ausprobiert habe:
export LD_LIBRARY_PATH=/usr/local/lib
Danke für die Hilfe
Wo genau der Fehler war, weiß ich nicht, aber nachdem ich alles, was *sqlite* im Namen hatte, mit dem Paketmanager entfernt habe und die neuesten Versionen aus den sources neukompiliert habe (vorher in setup.cfg die dirs anpassen; /usr/local/include und /usr/local/lib), hats funktioniert, NACHDEM ich folgendes ausprobiert habe:
export LD_LIBRARY_PATH=/usr/local/lib
Danke für die Hilfe
Hi Leute,
habe versucht dieses SQLitebeispiel durchzukauen. Bei mir gestalltet sich folgendes Problem hier erstmal mein Code (Zum Teil auskommentiert wegen DB Anlage und Inserts):
Also erst hab ich die DB angelegt und die Inserts gefahren, danach wollte ich die Daten abrufen. Das wenn ich alles in einem Rutsch durchführe bekomme ich die gewollte 33 wenn ich aber später nur den Select durchführe findet der nix. Es kommt mir so vor als ob die DB beim Aufruf des Scriptes gelöscht wird.
Hab das hier nur mal so zum SQLitetesten ausprobiert, also nur rein aus interesse, jetzt möchte ich natürlich, das es auch funktioniert *g*... Ne andere Variante hab ich mit dem SQLAlchemy gebaut die klappte soweit.
Lieben Gruss
Robin
Kleiner Nachtrag ich verwende die Pakete die direkt von Ubuntu mitgeliefert werden
habe versucht dieses SQLitebeispiel durchzukauen. Bei mir gestalltet sich folgendes Problem hier erstmal mein Code (Zum Teil auskommentiert wegen DB Anlage und Inserts):
Code: Alles auswählen
from pysqlite2 import dbapi2 as sqlite
con = sqlite.connect("testdb")
cur = con.cursor()
who = "Melanie"
#cur.execute("CREATE TABLE people ( name TEXT, age INT )")
#cur.execute("INSERT INTO people VALUES ('Melanie', 33)")
#cur.execute("INSERT INTO people VALUES ('Robin', 27)")
cur.execute("select age from people where name='" + who + "'")
print cur.fetchone()
Hab das hier nur mal so zum SQLitetesten ausprobiert, also nur rein aus interesse, jetzt möchte ich natürlich, das es auch funktioniert *g*... Ne andere Variante hab ich mit dem SQLAlchemy gebaut die klappte soweit.
Lieben Gruss
Robin
Kleiner Nachtrag ich verwende die Pakete die direkt von Ubuntu mitgeliefert werden
- DatenMetzgerX
- User
- Beiträge: 398
- Registriert: Freitag 28. April 2006, 06:28
- Wohnort: Zürich Seebach (CH)
Ändere den Verbindungsaufbau auf etwa dies
also füge isolation_level = None hinzu
Code: Alles auswählen
self.conn = sqlite3.connect(db, isolation_level = None)
Das liegt daran, dass Du nirgends `commit()` aufrufst, also die Daten wirklich dauerhaft in die DB übernimmst. Wenn alles in einem Rutsch durchgeführt wird, dann passiert alles innerhalb einer Transaktion. Das "funktioniert", nur das die Änderungen ohne `commit()` beim Skriptende wieder rückgängig gemacht werden.
ahh super con.commit() funktioniert prächtig, wieder was dazu gelernt. Orientiert sich anscheinend an der "Python Database API Specification v2.0" oder gibts da größere Unterschiede?