2012-04-12 13 views
1

Ich versuche, über eine Befehlszeile eine Instanz von Konsole zu öffnen und ein Python-Skript auszuführen. Ich versuche:Verwenden von "konsole" Befehl zum Ausführen von Python-Skript

konsole -hold -e 'python -i hello.py' 

Das Verhalten Ich erhalte, ist, dass eine anhaltende konsole öffnet, und ich bin in Python fallen gelassen, aber das Skript nicht ausgeführt.

Python 2.7.2+ (default, Oct 4 2011, 20:03:08) 
[GCC 4.6.1] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 

Was muss ich tun, damit das Python-Skript im Konsole-Fenster ausgeführt wird?

+0

By the way: (1) die Datei "hello.py" hat die Linie print ("Hallo von Python") (2) Mein Ziel ist es in Kate ein "externes Tool" haben Das führt das aktuelle Skript aus. Ich versuche: cd "% verzeichnis" & & konsole -e 'python -i "% filename"' und ich bekomme das gleiche Verhalten oben beschrieben mit dem Befehl von einer Befehlszeile. – abalter

+0

Ich benutze 'konsole' nicht, aber der' -e' Parameter ist von 'xterm' bekannt. Du scheinst es richtig zu benutzen; das funktioniert gut mit 'xterm'. – zigg

Antwort

2

jsbueno-Lösung die richtige ist . wie here jedoch beschrieben, können Sie auch etwas tun ...

konsole --hold -e /bin/sh -c "python -i hello.py"

P. S. Sie müssen --workdir (vor dem -e arg) angeben oder den vollständigen Pfad zum Python-Skript angeben, wenn es nicht immer im ersten Arbeitsverzeichnis von konsole vorhanden ist. Aber das wusstest du wahrscheinlich schon.

+0

Gleiches Problem wie oben. – abalter

+0

Vielleicht möchten Sie sich den P.S. in meiner Antwort. Wenn Sie '' Errno 2] Keine solche Datei oder kein Verzeichnis 'für 'hello.py' erhalten, ist es wahrscheinlich, dass die Konsole ein anderes anfänglich aktuelles Arbeitsverzeichnis hat, als Sie erwarten. – Marty

+0

Mit Gott, das hat es geschafft! Tut mir leid, dass ich nicht auf den P.S. – abalter

2

Das Problem ist die Art und Weise, wie "Konsole" die Parameter nach dem -e Schalter verwendet - es scheint wie es einfach übergeben sie in einem Aufruf, der die Leerzeichen als Trennzeichen nicht interpretiert.

Wenn Sie jedoch nicht Ihre Aufrufparameter setzen in Anführungszeichen es funktionieren wird - das heißt, einfach:

konsole --hold -e python -i hello.py 

(ich es gerade hier getestet)

+0

Ich habe es gerade von einem Gnome-Terminal getestet und es ist fehlgeschlagen. [email protected]: /nfs/concen/usr2/cslab/home/ariel.balter/Documents $ ls * Py hello.py Ich erhalte den folgenden Fehler in der konsole Fenster, das sich öffnet: /usr/bin/python: Datei 'hello.py' kann nicht geöffnet werden: [Errno 2] Keine Datei oder Verzeichnis – abalter

Verwandte Themen