Seite 1 von 1
Python Programm in Python ausführen
Verfasst: Montag 15. August 2011, 18:33
von spike_1895
Hi leute
ich habe eine Frage kann man ein Pythonprogramm in einem Pythonprogramm ausführen?
also ein normales programm kann man mit
Code: Alles auswählen
import subprocess
p = subprocess.Popen([r"C:\...\programm.exe", "-h"], stdout=subprocess.PIPE)
p.wait()
print p.stdout.read()
ausführen
aber immer wenn ich das mit einem Pythonprogramm mache, funktioniert das nicht
gibt es ein modul mit dem man ein Pythonprogramm in einem pythonprogramm ausführen kann?
schonmal Danke
Re: Python Programm in Python ausführen
Verfasst: Montag 15. August 2011, 18:41
von Hyperion
spike_1895 hat geschrieben:Hi leute
ich habe eine Frage kann man ein Pythonprogramm in einem Pythonprogramm ausführen?
also ein normales programm kann man mit
Code: Alles auswählen
import subprocess
p = subprocess.Popen([r"C:\...\programm.exe", "-h"], stdout=subprocess.PIPE)
p.wait()
print p.stdout.read()
ausführen
aber immer wenn ich das mit einem Pythonprogramm mache, funktioniert das nicht
gibt es ein modul mit dem man ein Pythonprogramm in einem pythonprogramm ausführen kann?
schonmal Danke
Das funzt schon - da Windows im Moment keinen Shebang versteht, musst Du halt den Interpreteraufruf davor setzen. Letztlich hättest Du darauf ja selber kommen können, da Du das ja in einer Shell selber so machen musst.
Die Frage wäre natürlich, ob das an dieser Stelle der sinnvolle Weg ist, oder es sich nicht anbietet, das Programm als Modul zu importieren und die entsprechende Funktion direkt aufzurufen.
Re: Python Programm in Python ausführen
Verfasst: Montag 15. August 2011, 19:38
von BlackJack
Der Pfad zum gerade laufenden Interpreter ist übrigens an `sys.executable` gebunden. Dann muss man den nicht hart in das Programm schreiben.
Re: Python Programm in Python ausführen
Verfasst: Montag 15. August 2011, 20:28
von Newcomer
Mal ne Frage, kann man es nicht einfach als modul hinterlegen und dann importieren? So wäre es auf jeden Fall bequemer
Re: Python Programm in Python ausführen
Verfasst: Montag 15. August 2011, 20:35
von jbs
Was willst du denn ausführen? Was eigenes? Dann mach doch eine main(), die du dann aufrufst.
Re: Python Programm in Python ausführen
Verfasst: Mittwoch 17. August 2011, 19:54
von spike_1895
Ich habe vor login auszuführen, den ich mit PythonCard gemacht habe und noch eine
Animation mit pygame.
Das problem ist nur, wenn ich das pygamefenster schließe, ob jetzt per kreuz oder im Code per sys.exit
schließe ich alle anderen offenen Fenster, Animationen usw..
@ Hyperion: Was meinst du mit interpreteraufruf,wie geht das und ich muss das vor meiner shell,also
IDLE nicht davorsetzten
@BlackJack: Das ist warscheinlich der Interpreteraufruf, aber was soll ich mit dem machen?Wie soll ich das machen?
ich hab mir das mal in der idle help angeguck,verstehe aber kein Wort
@jbs: was meinst du mit main()
Schonmal Danke
Re: Python Programm in Python ausführen
Verfasst: Montag 23. Januar 2012, 00:03
von alexskiwalker
So must du's machen:
import subprocess
p = subprocess.Popen([r"C:\...\run.bat", ""], stdout=subprocess.PIPE)
p.wait()
print p.stdout.read()
und danach in die Windows Batchdatei reinschreiben, dasser zb Hallo.py mit Python ausführen soll:
start Hallo.py Python
Re: Python Programm in Python ausführen
Verfasst: Montag 23. Januar 2012, 13:38
von Hyperion
Hallo und Willkommen im Forum!
bitte verwende doch für Code die Code-Tags, für Python-Code die speziellen Python-Code-Tags. Damit bleibt die Einrückung erhalten und das ist ja ein wesentliches Syntaxelement von Python.
Wieso schlägst Du eine eher umständliche Lösung vor? Es gab ja schon zwei Vorschläge, die vom OP irgend wie ignoriert wurden. Deine Lösung bietet keine sichtbaren Vorteile, eher schon Nachteile (zusätzliche Batch-Datei).
Als letztes ist fraglich, ob der OP an dem Thema noch Interesse hat - der Thread stamm ja aus dem August letzten Jahres!
Re: Python Programm in Python ausführen
Verfasst: Montag 25. Februar 2013, 22:21
von Dami123
kurze Frage dazu, wollte kein neues Thema eröffnen.
kann ich einen per Popen aufgerufene .bat mit Variablen füttern?
Mein Problem: Win 7 lässt es nicht zu, per Python, Ordner umzubenennen Error 5 - Zugriff verweigert.
Um dies nicht weiter zu verkomplizieren will ich einfach "ren" benutzen.
Code: Alles auswählen
from subprocess import Popen
ordner = pfad
order_neu = pfad + neuer Name
subprocess.Popen("pfad/cmd.exe ren" + ordner + ordner_neu)
würde dies funktionieren? hab erst morgen Zeit dies auszuprobieren und vielleicht hat ja einer damit bereits Erfahrung sammeln können

Re: Python Programm in Python ausführen
Verfasst: Montag 25. Februar 2013, 22:30
von cofi
Dami123 hat geschrieben:kurze Frage dazu, wollte kein neues Thema eröffnen.
Ein Jahr nach dem letzten Post mit einem komplett unverwandten Problem darfst du das ruhig machen.
Und nein es wuerde nicht funktionieren, folgendes aber:
Code: Alles auswählen
subprocess.Popen('ren %s %s' % (old, new), shell=True)
Wenn du aber `old` und `new` nicht komplett unter Kontrolle hast, also von einer Benutzereingabe/-konfiguration abhaengt, solltest du davon die Finger lassen, Details gibts in der `subprocess` Dokumentation.