program mit os.system starten

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
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

Mittwoch 16. März 2011, 10:35

Guten Tag
Ich möchte aus einem Pythonskript ein anderes Programm aufrufen, weil mir dort eine Funktion zur Verfügung steht dich ich benötige (der Output vom anderen Programm wird in ein File geleitet und dann zu Weiterverarbeitung eingelesen).
Auf der Commandline kann ich das andere Programm ohne weiteres ausführen (ein alias ist gesetzt, das Programm ist auch in $PATH). Wenn ich das gleiche nun mit os.system('programm') tun möchte, so wird das Programm nicht gefunden. Es scheint, als ob die Pfadvariable nicht für os.system zur Verfügung steht. Wenn ich in os.system('voller/pfad/programm') eingebe, dann läuft es.

Woran liegt das also?

Vielen Dank für Hinweise.
[url=http://www.proandkon.com]proandkon.com[/url]
BlackJack

Mittwoch 16. März 2011, 10:41

@mzh: Ist der Alias und der Pfad auch in der Shell gesetzt, die mit `os.system()` gestartet wird? Auf Aliase kann man sich wahrscheinlich sowieso nicht verlassen, oder kennt die jede Shell?
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

Mittwoch 16. März 2011, 12:51

ja. In Shell A startet das Programm wenn ich den Befehl eingebe.
Wenn ich dann in Shell A den Python Interpreter starte und 'import os', 'os.system('programm')' bemühe, ist das Programm unbekannt.
Ich hab beispielsweise Maple installiert und auch im Command Line Modus verfügbar. Mit 'os.system('maple')' startet Maple wunderbar und läuft dann innerhalb der Python shell bis ich es beende.
[url=http://www.proandkon.com]proandkon.com[/url]
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Mittwoch 16. März 2011, 13:00

Es geht nicht um die Shell, in der du Python startest, sondern um die Shell die os.system startet, um darin deinen Befehl auszufuehren.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Antworten