Seite 1 von 1

mod_python führt unter / aus ?

Verfasst: Montag 23. November 2009, 17:08
von naked_chef
hi,

ich sitze gerad an einem projekt indem ich mit mod_python und psp arbeite.
um das ganze etwas dynamischer gestalten zu können, wollte ich in den scripten mit relativen pfaden arbeiten, so wie es auch auf dem comandline problemlos klappt.

leider werden die psp's im /-verzeichniss des webservers ausgeführt, was dazu führt, dass die relativen-pfade wertlos sind.

der entsprechende teil in der vhost-config:

Code: Alles auswählen

<Directory /var/www>
...
AddHandler mod_python .psp .psp_
PythonHandler mod_python.psp
PythonDebug On
...
</Directory>

Code: Alles auswählen

html><body>
<%
import os
stro = "ls"
cmd2 = os.popen(stro)
res = [lines.strip() for lines in cmd2]
for x in res:
%>
<p><%= x %></p>
</body></html>
führe ich das script aus, bekomme ich alles aus / angezeigt.

gibt es eine möglichkeit das zu verhindern ?

danke und gruss naked

Verfasst: Montag 23. November 2009, 17:11
von ms4py

Code: Alles auswählen

os.chdir(path)
:)

Verfasst: Montag 23. November 2009, 17:39
von naked_chef
daran hab ich auch schon gedacht, aber os.chdir kann nicht mit ~ umgehen, was das ganze wieder undynamisch macht.

Verfasst: Montag 23. November 2009, 17:45
von ms4py

Code: Alles auswählen

os.environ['HOME']
:)

Verfasst: Montag 23. November 2009, 17:57
von lunar
Als allgemeine Anmerkung wäre noch zu sagen, dass mod_python und insbesondere Python Server Pages veraltet ist. Falls Du ein neues Projekt anfängst, so nutze doch lieber eines der vielen WSGI-Rahmenwerke für Python (Django, Pylons, Bottle, etc.).

Verfasst: Montag 23. November 2009, 18:44
von cofi
ice2k3 hat geschrieben:

Code: Alles auswählen

os.environ['HOME']
:)
Daneben gibts noch `os.path.expanduser`, ABER das is alles gefrickel um das Kernproblem. mod_python nicht zu verwenden ist die bessere Loesung.

Verfasst: Montag 23. November 2009, 20:43
von naked_chef
mod_python und psp ist hier leider eine vorgabe, daher muss ich mich dem fuegen.

ich haette auch ehr django oder sogar tornado verwendet.

danke fuer die tipps

os. environ half mir mein problem zuloesen