Python / Django - Server auf Fritz!Box 7140

NANoo

Neuer User
Mitglied seit
4 Jun 2008
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Hallo!

Ich versuche seit einiger Zeit das Django Webframework auf meiner Fritz!Box zu installieren. Letztendlich will ich meine Homepage auf der Box hosten.

Ich hab (nach zähem Ringen) in Anlehnung an diesen Thread Python cross-compiled.

Django zu installieren ging dann ganz gut, da Python ja schon (fast) alle Abhängigkeiten mitgebracht hat. Auch der lighttpd - Webserver lies sich recht leicht compilen.

Aber als ich den Django in den Webserver einbinden wollte kam ein Fehler - ihm fehle "flup".
also hab ich flup besorgt, wollts installieren und siehe da:
Er will dazu die setuptools*.egg installieren, scheitert aber an einem "missing zlib"(exact: zipimport.ZipImportError: can't decompress data; zlib not available)

Also zlib (über menuconfig im freetz) nachinstalliert, firmware nochmal neu drauf - und - fehlt immernoch...?
Wenn ich im Python interpreter "import zlib" eingebe kommt: "ImportError: dynamic module does not define init function (initzlib)"

dazu fällt mir dann jetzt nix mehr ein....

Kann mir jemand helfen?#
Danke
 
Zuletzt bearbeitet:
Verschoben aus dem Bereich Technik/Sonstiges:
Hier im Bereich der Fritz-Modifikationen ist's wohl besser aufgehoben.

PS: Willkommen im Forum!
 
Hi,

ich habs geschafft nach dem oben genannten Tutorial Python für die FB zu compilieren, aber ich kann z.b. die socket library nicht benutzten. das erste problem war das mir die _socket.so gefehlt hat, danach die libc.so.6 aber die hab ich im mod/lib verzeichnis liegen und seit dem stürtzt python immer mit der Zeile:
libc.so.6: aborted attempt to load ./python!

Hat jemand ne Idee?

Gruß Adri
 
Zuletzt bearbeitet:
wollt ihr euch und der box das wirklich antun?
immerhin werkeln da nur ganz schlanke ~200 mhz bei bescheidnem verfügbaren arbeitsspeicher...
also apache mit php iss ja schon langsam...aber das wird sicher gemütlich...
 
Naja Ext2 und Swap müssten erstmal reichen... Testen geht vor Studieren...
 
Also ich hab das Python genau siehe unten hinbekommen. Allerdings werden da die ganzen Module (MIT denen ich Python brauche) nicht mitkompiliert. Die Header / Sources von den Modulen (sqlite, pysqlite, etc) hab ich zwar installiert, aber er sagt immer dass die sqlite.o das falsche Format hat. Ich komm das irgendwie vom Hundertsten ins Tausendste mit dem Python CrossCompile.

Mittlerweile hab ich ein Debian in die Fritbox geldaden (mit debootstrap und chroot). Hier ist zwar alles (noch) langsamer, aber ich glaube ich müsste damit einfacher ein Python kompilieren können, dass auch ohne debian auf der FB läuft... wir werden sehen....

(=> Adri : Deine Fehlermeldungen sind mir allesamt neu. hatte ich nicht...)

Unter diesem Thread hab ich mehr Hilfe bekommen...


Python Xcompile : Einige Pade müssen auf dein System angepasst werden, oder du machst dir einen /home/noo/python-out/ -Ordner indem nachher alles landen soll...

[Edit frank_m24: Bitte benutzt CODE Tags für lange Ausgaben.]
Code:
ChangeDir to freetz-1.0/

	make toolchain 
	sudo ln -s `pwd -L`/toolchain/target /usr/mipsel-linux-uclibc 

Download Python2.5crosscompile.patch and patch: 
[URL="http://whatschrisdoing.com/~lambacck/Python2.5_xcompile.patch"]http://whatschrisdoing.com/~lambacck/Python2.5_xcompile.patch[/URL]
	
patch -p1 < ../python2.5xcompile.patch

ChangeDir to Python-2.5/
	
	rm configure.in

	./configure
	make python Parser/pgen
	mv python hostpython && mv Parser/pgen Parser/hostpgen
	make distclean


	CPPFLAGS="-I/usr/mipsel-linux-uclibc/include -I/home/noo/python-out/include" 
	CFLAGS="-I/usr/mipsel-linux-uclibc/include -I/home/noo/python-out/include"
	LDFLAGS="-L/usr/mipsel-linux-uclibc/lib -L/home/noo/python-out/lib"
	ARCH=mipsel-linux 
	CROSS_COMPILE=mipsel-linux-uclibc-
	PATH=/usr/mipsel-linux-uclibc/bin:${PATH} 
	CPP=/usr/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-cpp      
	RANLIB=/usr/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-ranlib
	LD=/usr/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-ld
	AR=/usr/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-ar
	CC="/usr/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-gcc -std=gnu99 -fno-strict-aliasing"
	CXX=/usr/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-g++
	CXXFLAGS="-I/usr/mipsel-linux-uclibc/include -I/home/noo/python-out/include"

	./configure --host=mipsel-linux-uclibc --prefix=/home/noo/python-out --disable-ipv6 --with-libm=/usr/mipsel-linux-uclibc/lib/libm-0.9.28.so

	make HOSTPYTHON=./hostpython EXTRA_CFLAGS="$CFLAGS" HOSTPGEN=./Parser/hostpgen BLDSHARED="${CC} -shared" CROSS_COMPILE=yes

	make install HOSTPYTHON=./hostpython EXTRA_CFLAGS="$CFLAGS" HOSTPGEN=./Parser/hostpgen BLDSHARED="${CC} -shared" CROSS_COMPILE=yes
 
Zuletzt bearbeitet:
Also ich denke ein Python Django / Lighttpd / Sqlite - Server dürfte um einiges Schneller sein als so'n PHP/ Apache /MySQL Kreuzfahrtschiff....
(hoffe ich - weil deshalb mach ich's)
 
Da kannst du recht haben... Lighttpd und SQLlite sind recourcen schonender, also auch bei der Box müsste es sowas sein...
 
ich hab das grad mal ausprobiert.
also mit dem python, das ich über das debian installiert hab, sind die antwortzeiten schon lange, ca 8 sekunden....

Allerdings wird über das debian (glaub) sehr viel leistung verschenkt...
 
hey,

habs nochmal probiert..hat wieder nich so funktioniert,
dann hab ich die ganzen Module im ordner 'lib-dynload' umbenannt, die hatten alle nen _failed hinten dran, jetzt geht alles perfekt.


Danke Gruß Adri

EDIT:Bis auf sqlite, daran scheitert bei mir grad auch alles:(
 
Zuletzt bearbeitet:
Also wenn ich Python compile kommt wenn er bei Moudules/Sqlite ist folgendes:

Code:
/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

Python wird aber fertig kompiliert und funktioniert ja sonst auch gut.

Ich denke da muss die Toolchain angepasst, werden, so wie das hier aussieht? oder?

weiß jemand was gegen diese "break strict-aliasing-rules " Warnungen (die zu 1000en kommen) tun kann?
 
Kostenlos!

Statistik des Forums

Themen
248,922
Beiträge
2,305,234
Mitglieder
378,647
Neuestes Mitglied
sararararara