Wie führe ich Python-Code aus Sublime Text 2 aus?

309

Ich möchte eine vollständige Python-IDE in Sublime Text 2 einrichten.

Ich möchte wissen, wie der Python-Code im Editor ausgeführt wird. Wird es mit dem Build-System gemacht? Wie mache ich es ?

Neo
quelle

Antworten:

372

Tools -> Build System -> (wählen Sie) Python dann:

Laufen:

      Tools -> Build

      -or-

      Ctrl + B

      CMD + B  (OSX)

Dies würde Ihre Datei in der Konsole starten, die sich am unteren Rand des Editors befinden sollte.

Stoppen:

       Ctrl + Break or Tools -> Cancel Build

       Fn + C (OSX)

Hier finden Sie heraus, wo sich Ihr BreakSchlüssel befindet: http://en.wikipedia.org/wiki/Break_key .

Hinweis: CTRL + Cwird nicht funktionieren.

Was tun, wenn Ctrl + Breakes nicht funktioniert ?

Gehe zu:

Einstellungen -> Tastenkombinationen - Benutzer

und fügen Sie die folgende Zeile ein:

{"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} } 

Jetzt können Sie ctrl+shift+canstelle von verwendenCTRL+BREAK

matiit
quelle
9
Erhabener Text kann die Sprache auch automatisch erkennen. Also hat es für mich funktioniert, nur STRG + B
Alexis
4
Stellen Sie sicher, dass pythonin Ihrem PATH... das Windows-Installationsprogramm scheint dies nicht automatisch zu tun
SeanJA
2
Wie hört man auf, ein Programm (Python) auszuführen?
Ib33X
3
Die Break-Taste meiner Tastatur sieht aus wie "Pause / Break". Um den Prozess zu stoppen, habe ich auch hinzugefügt{"keys": ["pause"], "command": "exec", "args": {"kill": true} }
eisiger
3
Die Zeile {"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} }in den Benutzerschlüsselbindungen und die Verwendung von ctrl+shift+cAusdrucken, die erstellt werden, [Cancelled]während das Programm noch ausgeführt wird.
Devi
56

Speichern Sie Ihre Datei unter Mac OS X mit der Erweiterung .py. Drücken Sie + B. Es läuft in einem Fenster unten.

Geben Sie hier die Bildbeschreibung ein

Bobobobo
quelle
55

Bearbeiten Sie% APPDATA% \ Sublime Text 2 \ Python \ Python.sublime-build

Ändern Sie den Inhalt in:

{
    "cmd": ["C:\\python27\\python.exe", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

Ändern Sie den Teil "c: \ python27" in eine beliebige Version von Python, die Sie in Ihrem System haben.

ppy
quelle
3
Achten Sie auf den doppelten Schrägstrich im Pfad, Sublime erkennt ihn sonst nicht!
Enrico
6
Ein einfacher Schrägstrich funktioniert auch unter einem doppelten umgekehrten Schrägstrich unter Windows: "C: /Python27/python.exe" (à la Linux und OSX)
Dylan Hogg
7
Für mich war der Pfad% APPDATA% \ Sublime Text 2 \ Packages \ Python \ Python.sublime-build
aultimus
5
Ich scheine den Python-Ordner in Sublime Text 3
HoKy22
44

Zum LAUFEN drücken CtrlB(Antwort per Matiit )

Aber wenn CtrlB dies nicht funktioniert , kann Sublime Text den Python-Interpreter wahrscheinlich nicht finden. Wenn Sie versuchen, Ihr Programm auszuführen, lesen Sie das Protokoll und suchen Sie den Verweis auf Python im Pfad.

[cmd:  [u'python', u'-u', u'C:\\scripts\\test.py']]
[path: ...;C:\Python27 32bit;...]

Der Punkt ist, dass es versucht, Python über die Befehlszeile auszuführen, das cmd sieht aus wie:

python -u C:\scripts\test.py

Wenn Sie Python nicht über cmd ausführen können, kann Sublime Text dies auch nicht.
(Probieren Sie es selbst in cmd aus, geben Sie Python ein und führen Sie es aus. Die Python-Befehlszeile sollte angezeigt werden.)

LÖSUNG

Sie können entweder die Build-Formel für Sublime Text oder das System ändern %PATH%.

  • So stellen Sie Folgendes ein %PATH%:
    * Sie müssen Ihren Editor neu starten, um neue zu laden%PATH%

    • Führen Sie die Befehlszeile * aus und geben Sie den folgenden Befehl ein: * muss als Administrator ausgeführt werden,
      SETX /M PATH "%PATH%;<python_folder>"
      zum Beispiel:SETX /M PATH "%PATH%;C:\Python27;C:\Python27\Scripts"

    • OR manuell: (bevorzugt)
      hinzufügen ;C:\Python27;C:\Python27\Scriptsam Ende des Strings. Pfad in Win7 festlegen

  • Um den Pfad des Interpreters festzulegen, ohne sich mit dem System herumzuschlagen, lesen%PATH% Sie diese Antwort von ppy .

Qwerty
quelle
Entschuldigung, aber können Sie erklären, was die Option "-u" bedeutet? Ich kann die Listenoption von Befehlszeilenparametern nicht finden, die zusammen mit python.exe übergeben werden sollen.
Jim Raynor
@ JimRaynor es ist ungepufferte Streams stackoverflow.com/questions/14258500/significance-of-u-option
Qwerty
9

Sie können SublimeREPL verwenden (zuerst muss Package Control installiert sein).

invis
quelle
1
Könnten Sie näher erläutern, wie Daten aus einem Skriptfenster an SublimeREPL gesendet werden, da dies für Python funktioniert, während R funktioniert ...
Matt Bannert
6

Wenn Sie Python 3.x verwenden, müssen Sie das bearbeiten Python3.sublime-build

(Einstellungen> Pakete durchsuchen> Python 3)

so aussehen:

{
  "path": "/usr/local/bin",
  "cmd": ["python3", "-u", "$file"],
  "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
  "selector": "source.python"
}
Daniel Romero
quelle
4

[Dies gilt für ST3 (Win), nicht sicher über ST2]

Gehen Sie folgendermaßen vor, damit die Ausgabe in Sublime als eine andere Datei angezeigt wird (+ eine für Fehler):

  1. Erstellen Sie ein neues Build-System: Tools > Build Systems > New Build System...
  2. Verwenden Sie die folgende Konfiguration:
    {
        "cmd": ["python.exe", "$ file", "1>", "$ file_name .__ STDOUT __. txt", "2>", "$ file_name .__ STDERR __. txt"],
        "Selektor": "source.python",
        "Shell": wahr,
        "working_dir": "$ file_dir"
    }}
  1. Wählen Sie für Ihre Python-Datei die obige Konfigurationsdatei für das Build-System aus: Tools > Build Systems > {your_new_build_system_filename}
  2. ctrl + b
  3. Nun, neben Ihrer Datei, zB haben "file.py"Sie "file.__STDOUT__.py"und "file.__STDERR__.py"(für Fehler, falls vorhanden)
  4. Wenn Sie Ihr Fenster in 3 Spalten oder ein Raster aufteilen, wird das Ergebnis sofort angezeigt, ohne dass Sie zwischen Bedienfeldern / Fenstern wechseln müssen
Ellockie
quelle
2

Coole U-Leute, ich habe gerade Folgendes gefunden:

http://ptomato.wordpress.com/2012/02/09/geek-tip-running-python-guis-in-sublime-text-2/

Hier erfahren Sie (wie in einer der obigen Antworten), wie Sie diese exec.py im Standardverzeichnis bearbeiten .

Ich hatte das Problem, dass meine PYTHON UI-ANWENDUNG nicht gestartet werden konnte. Ich habe die letzte Zeile aus dem folgenden Ausschnitt auskommentiert:

    # Hide the console window on Windows
    startupinfo = None
    if os.name == "nt":
        startupinfo = subprocess.STARTUPINFO()
        #startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW

und, taaadaaaa, ich könnte meine App durch Drücken von Strg + B starten. Lustige Linie sowieso, nicht wahr? Und ein großes Dankeschön an alle, die diesen Artikel geschrieben haben ;-)

anhoppe
quelle
Mein Problem wurde auch gelöst. Die Konsolenausgabe wurde in Sublime Text 2 angezeigt und zeigte an, dass mein Code ausgeführt wurde, meine GUI jedoch nie angezeigt wurde. Ich habe diese Zeile kommentiert und jetzt ist sie da. Die Konsolenausgabe wird weiterhin an Sublime Text gesendet. Perfekt!
Jonathan Lidbeck
1

Sie können auf die Python-Konsole über "Konsole anzeigen / anzeigen" oder Ctrl+ zugreifen `.

Sack
quelle
1
Es wird jedoch der folgende Fehler angezeigt: Datei ". \ exec.py", Zeile 109, in Ausführungsdatei ". \ ntpath.py", Zeile 205, in Verzeichnisname Datei ". \ ntpath.py", Zeile 170, in geteilter Datei ". \ ntpath.py", Zeile 125, in splitdrive TypeError: 'NoneType'-Objekt ist nicht abonnierbar
neo
Bitte geben Sie weitere Details (indem Sie die Frage erweitern) an, was Sie tun.
Poke
Ich tippe einfach Python-Code wie "Hallo" drucken und erstelle ihn dann und öffne die Konsole, um diesen Fehler zu sehen.
Neo
Die Verwendung der Python-Konsole beantwortet die Frage nicht . Der eingebettete Interpreter ist nur für die Interaktion mit der Plugin-API vorgesehen, nicht für die allgemeine Entwicklung.
Mkenyon
1

Ich habe dieses Problem gelöst:

> Preferences –> Browse Packages –> Default 

Öffnen Sie die exec.pyDatei in der Nähe der Zeile 41-42. Der Code sollte folgendermaßen aussehen:

for k, v in proc_env.iteritems():
    proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())

dann löschen oder bearbeiten als:

try:    
    for k, v in proc_env.iteritems():
        proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())
except:
    print 'foobar'
Rhea
quelle
was macht es eigentlich Wie hilft es?
Qwerty
@Qwerty Er dachte, das Programm sollte Ausnahmen behandeln, also legte er den Code in einen tryBlock.
CHM
Ich habe es versucht. Es hat das Problem nicht behoben und das bestehende Verhalten gebrochen.
Jonathan Lidbeck
1

Ich bin heute auf das gleiche Problem gestoßen. Und so habe ich es geschafft, Python-Code in Sublime Text 3 auszuführen:

  1. Drücken Sie Ctrl+ B(für Mac, + B), um das Build-System zu starten. Es sollte die Datei jetzt ausführen.
  2. Befolgen Sie diese Antwort, um zu verstehen, wie Sie das Build-System anpassen.

Was Sie brauchen , als nächstes zu tun ist , den Inhalt ersetzen in Python.sublime-buildzu

{
    "cmd": ["/usr/local/bin/python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
}

Sie können es natürlich weiter an etwas anpassen, das für Sie funktioniert.

Huang Chao
quelle
1

In Python v3.x sollten Sie zu : Tools->Build System->New Build System.

Anschließend wird das Fenster untitled.sublime-build im Sublime-Texteditor geöffnet. Geben Sie die Einstellung wie folgt ein:

{

    "cmd": ["path_to_the_python.exe","-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

Um den Pfad zu sehen , Type following in terminal as:

python
>>> import sys
>>>print(sys.executable)

Sie können mehr als ein Build-System erstellen , es sollte jedoch standardmäßig in Paketen mit erhabenem Text mit der Erweiterung .sublime-build gespeichert werden .

Wählen Sie dann das neue Build-System aus und drücken Sie cltr+boder andere basierend auf Ihrem Betriebssystem.

susan097
quelle
0

Ich hatte das gleiche Problem. Sie haben die Datei wahrscheinlich noch nicht gespeichert. Stellen Sie sicher, dass Sie Ihren Code mit der Erweiterung .py speichern und er sollte funktionieren.

Onat
quelle
0

Eines ist beim oben genannten Build-System zu beachten : Sie können benutzerdefinierte .sublime-buildDateien oder sogar pro Projektklausel build_systems(in Ihren Projekteinstellungen) schreiben (und verwenden ). Auf diese Weise können Sie nützliche Dinge wie einen ausgefallenen Testläufer mit ANSI-Farbausgabe ausführen .

Für noch mehr "vollständige IDE" -Funktionen können Sie das hervorragende SublimePythonIDE- Paket verwenden:

  • Code-Vervollständigung (Intel)
  • Springe zu Definition & Objektbeschreibung
  • richtiges Flusen / pep8
  • unterstützt verschiedene Interpreter mit virtualenv

Offenlegung: Ich habe eine PR zu diesem Paket beigetragen und benutze sie ständig, aber es gibt noch andere .

tutuDajuju
quelle
0

Verwenden Sie neben Sublime eine echte Python-Konsole

Sowohl das Build-System von Sublime als auch SublimeREPL (die obigen Antworten) sind dahingehend eingeschränkt, dass Sie nach dem Ausführen Ihrer Datei nicht einfach mit den Arbeitsbereichsvariablen interagieren können.

Wenn Sie ein Skript ausführen und dann REPL-ähnlich arbeiten möchten (wie in einer IDE), empfehle ich, Sublime neben einer IPython-Konsole zu öffnen. Mit AutoHotKey (Windows) oder AutoKey (Linux) können Sie dies so einrichten, dass eine einzelne Verknüpfung den Dateinamen (oder nur den ausgewählten Code) kopiert und dann in die Konsole einfügt, um die Datei auszuführen.

Detaillierte Anweisungen für Linux oder Windows

hugke729
quelle