zlib import error

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Der-Noo
User
Beiträge: 11
Registriert: Sonntag 27. Juli 2008, 14:36

also dieses sqlite-modul krieg ich einfach nicht hin.

beim compilen schimpft der immer:

Code: Alles auswählen

/home/noo/basteln/Python-2.5/Modules/_sqlite/statement.c:169: warning: dereferencing type-punned pointer will break strict-aliasing rules
/home/noo/basteln/Python-2.5/Modules/_sqlite/statement.c:198: warning: dereferencing type-punned pointer will break strict-aliasing rules
mipsel-linux-uclibc-gcc: unrecognized option '-R/usr/lib'
/home/noo/Dokumente/Programmieren/Fritz!Box/freetz-1.0/toolchain/build/gcc-4.2.1-uClibc-0.9.28/mipsel-linux-uclibc/bin/../lib/gcc/mipsel-linux-uclibc/4.2.1/../../../../mipsel-linux-uclibc/bin/ld: skipping incompatible /usr/lib/libsqlite3.so when searching for -lsqlite3
/home/noo/Dokumente/Programmieren/Fritz!Box/freetz-1.0/toolchain/build/gcc-4.2.1-uClibc-0.9.28/mipsel-linux-uclibc/bin/../lib/gcc/mipsel-linux-uclibc/4.2.1/../../../../mipsel-linux-uclibc/bin/ld: skipping incompatible /usr/lib/libsqlite3.a when searching for -lsqlite3
/home/noo/Dokumente/Programmieren/Fritz!Box/freetz-1.0/toolchain/build/gcc-4.2.1-uClibc-0.9.28/mipsel-linux-uclibc/bin/../lib/gcc/mipsel-linux-uclibc/4.2.1/../../../../mipsel-linux-uclibc/bin/ld: cannot find -lsqlite3
collect2: ld returned 1 exit status
Vermutlich versucht er die x86 - versionen von meinem system zu nehmen...

Da muss ich sqlite zuerst in _mipsel übersetzen, und dann dem Python-Compiler sagen, er soll die nehmen, richtig?
aber wie?
Der-Noo
User
Beiträge: 11
Registriert: Sonntag 27. Juli 2008, 14:36

und weiß jemand was ich gegen die "breaking strict aliasing-rules"-warnings machen kann?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Der-Noo hat geschrieben:Da muss ich sqlite zuerst in _mipsel übersetzen, und dann dem Python-Compiler sagen, er soll die nehmen, richtig?
aber wie?
Richtig, zuerst sqlite3 für MIPSel kompilieren, mit dem Crosscompiler und dann dem Compiler mit -I den Pfad zu den richtigen Header und mit -L den Pfad zu den MIPSel-Libraries angeben.

Eine alternative könnte es ja auch sein, QEMU zu nehmen, damit ein MIPSel-System zu installieren und das dann zum kompilieren zu verwenden.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Der-Noo
User
Beiträge: 11
Registriert: Sonntag 27. Juli 2008, 14:36

das mit dem qemu hab ich die letzten tage versucht. sieht auch super aus. Wenn ich das dann auf der Fritzbox hab, fehlen ihm verschiedene libs (libutil.so.2, libm.so. libc.so.6). reiche ich die aus der virtuellen Maschine nach bringt er am ende:

Code: Alles auswählen

libc.so.6: aborted attempt to load ./python! 
da wusst ich dann absolut auch nicht mehr weiter...
Der-Noo
User
Beiträge: 11
Registriert: Sonntag 27. Juli 2008, 14:36

YEAH! Danke für den Tip, das sqlite3 - Modul ist jetzt endlich dabei !

funktioniert nur (noch?) nicht :-(

Code: Alles auswählen

./python -v

>>> import sqlite3
import sqlite3 # directory /mod/usr/lib/python2.5/sqlite3
# /mod/usr/lib/python2.5/sqlite3/__init__.pyc matches /mod/usr/lib/python2.5/sqlite3/__init__.py
import sqlite3 # precompiled from /mod/usr/lib/python2.5/sqlite3/__init__.pyc
# /mod/usr/lib/python2.5/sqlite3/dbapi2.pyc matches /mod/usr/lib/python2.5/sqlite3/dbapi2.py
import sqlite3.dbapi2 # precompiled from /mod/usr/lib/python2.5/sqlite3/dbapi2.pyc
dlopen("/mod/usr/lib/python2.5/lib-dynload/datetime.so", 2);
import datetime # dynamically loaded from /mod/usr/lib/python2.5/lib-dynload/datetime.so
dlopen("/mod/usr/lib/python2.5/lib-dynload/time.so", 2);
import time # dynamically loaded from /mod/usr/lib/python2.5/lib-dynload/time.so
dlopen("/mod/usr/lib/python2.5/lib-dynload/_sqlite3.so", 2);
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/mod/usr/lib/python2.5/sqlite3/__init__.py", line 24, in <module>
    from dbapi2 import *
  File "/mod/usr/lib/python2.5/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ImportError: File not found
und wenn ich's dann noch einmal versuche wird Python mit einem Speicherzugriffsfehler beendet:

Code: Alles auswählen

>>> import sqlite3
import sqlite3 # directory /mod/usr/lib/python2.5/sqlite3
# /mod/usr/lib/python2.5/sqlite3/__init__.pyc matches /mod/usr/lib/python2.5/sqlite3/__init__.py
import sqlite3 # precompiled from /mod/usr/lib/python2.5/sqlite3/__init__.pyc
# /mod/usr/lib/python2.5/sqlite3/dbapi2.pyc matches /mod/usr/lib/python2.5/sqlite3/dbapi2.py
import sqlite3.dbapi2 # precompiled from /mod/usr/lib/python2.5/sqlite3/dbapi2.pyc
dlopen("/mod/usr/lib/python2.5/lib-dynload/_sqlite3.so", 2);
Segmentation fault
/var/disk/usr/bin #
Leider kann ich damit nicht viel anfangen - beim Compilen hat er gemekert, dass Tcl/Tk fehlt...
Kann das sein dass er das auch braucht? wenn ich sqlite3 selbst ausführe gehts. Spricht Python Tcl/Tk mit sqlite3?
Das ist nämlich auch ganz schöner stress zum compilieren...
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Der-Noo hat geschrieben:Spricht Python Tcl/Tk mit sqlite3?
Nein, die sind völlig unabhängig. Bei dir scheint _sqlite.so irgendwie nicht richtig zu sein, falsche Architektur, falsche Endianness etc.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Der-Noo
User
Beiträge: 11
Registriert: Sonntag 27. Juli 2008, 14:36

YAWOLL! Ich habs geschafft!!

so habe ich sqlite3 übersetzt:

Code: Alles auswählen

 ./configure --host=mipsel-linux-uclibc --prefix=/var/disk/usr --enable-static CFLAGS="-I/usr/mipsel-linux-uclibc/include -I/var/disk/usr/include -Os -s" LDFLAGS="-L/usr/mipsel-linux-uclibc/lib -L/var/disk/usr/lib -static" ARCH=mipsel-linux
ein richtiges HowTo werde ich noch schreiben, und hier irgendwo pflanzen.....

Yippie !DANKE !!!!!!! :D :D
Antworten