mod_pyhon und import/execfile

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.
Antworten
Lampy
User
Beiträge: 7
Registriert: Samstag 25. Februar 2006, 19:36

Hallo!

Ich habe zwei Dateien. Die erste (a.py):

Code: Alles auswählen

# --------------------
def xyz(number):
        new = number + 2
        return new
# --------------------
Das eigentliche Problem liegt darin, dass nachfolgendes Skript (b.py), dass mit mod_python ausgeführt wird (URL http://.../b.py/test), nicht funktioniert.

Code: Alles auswählen

# --------------------
from mod_python import apache
import a
def test(req):
        text = 'Hello World - %s' % xyz(2)
        return text
# --------------------
Es findest aus irgendeinem Grund die a.py nicht. Ich hatte versucht, innerhalb und vor der Funktion test ein execfile('a.py') zu verwenden - aber auch da findet er die Datei nicht. (IOError: No such file)

Was mache ich falsch?

Grüße
Markus

Edit by Gerold: --> Code markieren und Python-Button drücken ;-) und BBCode zulassen.
Lampy
User
Beiträge: 7
Registriert: Samstag 25. Februar 2006, 19:36

sorry für die schlechte formatierung aber irgendwie habe ich das einrücken nicht ins forum bekommen :?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Lampy hat geschrieben:Es findest aus irgendeinem Grund die a.py nicht.
Hi Lampy!

Ich kenn mod_python nicht, aber vielleicht geht es beim Importieren nicht vom Skriptordner aus.

Versuch es mal hiermit:

Code: Alles auswählen

import sys, os.path
sys.path.append(os.path.dirname(__file__))
import a
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

execfile ist auf einen vollen pfad angewiesen afaik.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Außerdem muss der Code so aussehen:

Code: Alles auswählen

text = 'Hello World - %s' % a.xyz(2)
Beim nächsten mal bitte auch die Fehlermeldung vorzeigen.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten