Hallo,
in PHP gibt es funktionen mit denen man Betriebssystembefehle absetzen kann (exec(),passthru()...).
Gibt es so etwas ähnliches auch in Python? Ich habe dazu leider nichts gefunden. Ein kleiner Tip wäre nett.
Gruß freehand
Betriebssystembefehle
Hallo,
ich habe jetzt z.B. folgendes gemacht:
Das sollte nun Java starten und die mit den Argumenten auführen...
Ich bekomme aber immer diese Fehlermeldung:
OSError: [Errno 13] Permission denied
Muss ich da noch was Einstellen damit Python sowas überhaupt darf?
ich habe jetzt z.B. folgendes gemacht:
Code: Alles auswählen
os.execv('/usr/lib/java/bin/', ['-jar', '-Djava.awt.headless=true', '../batik-1.5/batik-rasterizer.jar', '-m image/jpeg', '-q 0.99', '../batik-1.5/svg1.svg'])
Ich bekomme aber immer diese Fehlermeldung:
OSError: [Errno 13] Permission denied
Muss ich da noch was Einstellen damit Python sowas überhaupt darf?
-
- User
- Beiträge: 728
- Registriert: Sonntag 22. September 2002, 08:32
- Wohnort: Sauerland
- Kontaktdaten:
Ich würde eher zu popen(), popen2(), etc. aus auch aus dem Modul OS zurückgreifen. Wenn dann Fehler ausgegeben werden, kann man diese ausgeben.
Permission denied deutet aber darauf hin, dass du wohl nicht ausreichende Berechtigungen hast um den Befehl auszuführen. Kannst du den Befehldenn direkt in einer Shell absetzen? Führst du das ganze etwa als CGI Script aus?
Hans
Permission denied deutet aber darauf hin, dass du wohl nicht ausreichende Berechtigungen hast um den Befehl auszuführen. Kannst du den Befehl
Code: Alles auswählen
/usr/lib/java/bin/', ['-jar', '-Djava.awt.headless=true', '../batik-1.5/batik-rasterizer.jar', '-m image/jpeg', '-q 0.99', '../batik-1.5/svg1.svg']
Hans
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Wie wärs mit alternativ (mit stdInOut umleitung) auch die popen befehle aus os.
Code: Alles auswählen
os.system(befehl)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
das stimmt, habe hier was falsches gepostet. ich meinte /usr/lib/java/bin/java.../usr/lib/java/bin/ ist sicher keine ausführbare Datei sondern ein Verzeichnis
aber java läßt sich wohl nicht über cgi starten. zumindst. findet er bei mir seine "umgebung" nicht... deshalb starte ich jetzt ein bash script.
aber egal was für einen befehl ich benutze, ich bekommte immer "Permission denied".
es klappt jetzt bei mir nur so:
Code: Alles auswählen
if os.fork()==0:
os.execv('/bin/bash', ('','/home/www/web8/html/session/%s_svg2jpg.sh'%sessionid))
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Wenn es als CGI/mod_python programm im kontext deines Webservers läuft dann musst du schauen als was für ein User dein Apache läuft und dann die berechtigungen anpassen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice