[Python-de] die tücken der funktion import

Rauch Pauli LightLan at lightlan.de
Di Dez 19 22:29:19 CET 2006


Christopher Arndt schrieb:
> Rauch Pauli schrieb:
>> Hallo liebe leute,
>>
>> ich schreibe seit einiger Zeit Programme in php, z.b. meine Homepage.
>> und habe nun einige Fragen zu python, im besonderen zur funktion import.
>> in php gibt es ja include und require, wo jeweils der gesamte pfad mit
>> angegeben wird.
>> nun habe ich bei meiner hp ein kleines aufbauschema gebastelt.
>>
>> user ruft auf : index.php, in dieser wird zuerst die header.php, danach
>> die index.inc.php und dann die footer.php included.
>> die 3 dateien befinden sich alle in unterordnern.
> 
> Was du hier willst, ist nicht "import"* sondern ein Template-System (das evtl.
> auch eingebetteten Python-Code zulässt).
> 
> Anscheinend verwendest du ja auch schon irgendein Template-System, jedenfalls
> lässt das dein Source-Code, den die Anderen aus deinen Mails** zitieren,
> schließen (wahrscheinlich mod-python?).
> 
> Jedes vernünftige Template-System hat eine Include-Funktion oder etwas
> Gleichwertiges. Diese solltest du in diesem Fall benutzen. Import verwendet
> man, um Variable, Funktionen und Klassen einzulesen, die man nachfolgend im
> Programm verwenden will, nicht, um irgendwelche Text oder HTML-Schnippsel
> (Header. Footer, etc) an der Stelle der Import-Anweisung einzufügen.
> 
> Chris
> 
> 
> 
> * import ist übrigens eine Anweisung und keine Funktion
> 
> 
> ** Manche finden es unhöflich, wenn man auf Antworten an die Liste privat an
> den Autor zurückschreibt, ohne dass das dazu begründete Veranlassung besteht.
Hallo Chris,
ups, entschuldige. ich verwende das erste mal eine mailingliste, sonst
immer foren und mit dem klick auf antworten schicke ich das wohl nur ihm
und nich an die liste :(


in php verwende ich das easy templatesystem. habe mich auch bei python
schon etwas umgesehen nach templateengines und Cheetah schein gut zu sein.

und ich scheine im moment mehrere probleme zu haben.
sollten wohl mal der reihe vom schwerwiegendsten ausgehen.
ich habe mod_python installiert und möchte darüber dann den python-code
ausführen, so dass der besuche ne htmlseite bekommt, was aber noch nicht
ganz einwandfrei geht, muss ich mir nochmal genauer ansehn.

im header baue ich die verbindung zur datenbank auf, initialisiere
verschiedene klassen(datenbank, templateengine, etc)
im footer wird der ganze text ausgegeben, der im hauptteil definiert wird.

also header und footer sind bei mir nicht nur teile der html ausgabe ;)

mfg Light Lan

hier mal die "fehlenden" mails *duck*

--------------------------

erstmal danke für die info marcus

>>> >>> import sys
>>> >>> sys.path.append('/srv/www/htdocs/hp-py/includes/')
>>> >>> import header.inc
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ImportError: No module named header.inc

in dem ordner includes ist das file header.inc.py
sollte also eigentlich gehen... der will anscheinend ein modul und keine
datei, wie jetzt?

mfg Light Lan

-----------------------

ah verstehe, die fkt hat nach dem modul header, welches ein modul inc
hat, gesucht.

das hat halbwegs geholfen.
wenn ich nun in der pythonshell den programmcode eingebe geht alles in
ordnung.
aber wenn ich das über meinen webserver aurufe(apache 2.0 mit
mod_python) bekomme ich nur einen 500 internal server error  :(

<%
import sys
sys.path.append("./includes/")
sys.path.append("./includes/pages/")
import header_inc,index_inc,footer_inc
%>

header und footer befinden sich in ./includes, index in ./includes/pages
die dateien sind noch leer.


mfg Light Lan

-------------------------
schade, aber danke für deine hilfe, die importhilfe im wiki ist wirklich
nützlich.
dadurch könnte ich das durchaus hinkriegen, aber jetzt geh ich erstmal
ins bett.
evtl meldet sich ja derweil einer, der davon mehr ahnung hat als wir
beide  ;)

mfg Light Lan
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : LightLan.vcf
Dateityp    : text/x-vcard
Dateigröße  : 122 bytes
Beschreibung: nicht verfügbar
URL         : http://python.net/pipermail/python-de/attachments/20061219/ae63e21c/attachment.vcf 
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 887 bytes
Beschreibung: OpenPGP digital signature
URL         : http://python.net/pipermail/python-de/attachments/20061219/ae63e21c/attachment.pgp