Come posso eseguire il codice Python da Sublime Text 2?


309

Voglio impostare un IDE Python completo in Sublime Text 2.

Voglio sapere come eseguire il codice Python dall'editor. È fatto usando il sistema di compilazione? Come lo faccio ?

Risposte:


372

Strumenti -> Crea sistema -> (scegli) Python quindi:

Correre:

      Tools -> Build

      -or-

      Ctrl + B

      CMD + B  (OSX)

Ciò avvierebbe il tuo file nella console che dovrebbe trovarsi nella parte inferiore dell'editor.

Fermare:

       Ctrl + Break or Tools -> Cancel Build

       Fn + C (OSX)

Puoi scoprire dove si trova la tua Breakchiave qui: http://en.wikipedia.org/wiki/Break_key .

Nota: CTRL + Csarà NON funzionerà.

Cosa fare quando Ctrl + Breaknon funziona:

Vai a:

Preferenze -> Key Bindings - User

e incolla la riga qui sotto:

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

Ora puoi usare ctrl+shift+cinvece diCTRL+BREAK


9
il testo sublime può anche "rilevare automaticamente" la lingua. Quindi ha funzionato per me solo CTRL + B
Alexis

4
Assicurati che pythonsia nel tuo PATH... Windows Installer non sembra farlo automaticamente
SeanJA,

2
come si interrompe l'esecuzione del programma (python)?
Ib33X,

3
Il tasto di interruzione della tastiera sembra "Pausa / Interrompi", quindi per interrompere il processo ho anche aggiunto{"keys": ["pause"], "command": "exec", "args": {"kill": true} }
ghiacciato il

3
Avere la riga {"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} }nei collegamenti dei tasti utente e usare ctrl+shift+cstampe come la build [Cancelled]mentre il programma è ancora in esecuzione.
Devi

56

Su Mac OS X, salva il tuo file con estensione .py. Premi + B. Funziona in una finestra in basso.

inserisci qui la descrizione dell'immagine


55

Modifica% APPDATA% \ Sublime Text 2 \ Python \ Python.sublime-build

Cambia contenuto in:

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

cambia la parte "c: \ python27" con qualsiasi versione di python che hai nel tuo sistema.


3
Presta attenzione alla doppia barra nel percorso, altrimenti Sublime non la riconoscerà!
Enrico,

6
La barra singola continua funziona anche al posto della doppia barra rovesciata su Windows: "C: /Python27/python.exe" (alla Linux e OSX)
Dylan Hogg

7
Per me il percorso era% APPDATA% \ Sublime Text 2 \ Packages \ Python \ Python.sublime-build
aultimus

5
Non mi sembra di vedere la cartella Python in Sublime Text 3
HoKy22,

44

Per eseguire premere CtrlB(risposta per matiit )

Ma quando CtrlB non funziona , Sublime Text probabilmente non riesce a trovare Python Interpreter. Quando si tenta di eseguire il programma, vedere il registro e trovare il riferimento a Python nel percorso.

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

Il punto è che tenta di eseguire Python tramite riga di comando, il cmd assomiglia a:

python -u C:\scripts\test.py

Se non è possibile eseguire Python da cmd, anche Sublime Text non può farlo.
(Provalo tu stesso in cmd, digita python in esso ed eseguilo, dovrebbe apparire la riga di comando di python)

SOLUZIONE

Puoi modificare la formula di compilazione Sublime Text o il Sistema %PATH%.

  • Per impostare %PATH%:
    * Sarà necessario riavviare l'editor per caricare nuovi%PATH%

    • Esegui riga di comando * e inserisci questo comando: * deve essere eseguito come amministratore,
      SETX /M PATH "%PATH%;<python_folder>"
      ad esempio:SETX /M PATH "%PATH%;C:\Python27;C:\Python27\Scripts"

    • OPPURE manualmente: (preferibile)
      Aggiungi ;C:\Python27;C:\Python27\Scriptsalla fine della stringa. Impostazione del percorso in Win7

  • Per impostare il percorso dell'interprete senza fare confusione con il sistema, %PATH%vedere questa risposta tramite ppy .


Siamo spiacenti ma puoi spiegare qual è il significato dell'opzione "-u"? Non riesco a trovare l'opzione elenco dei parametri della riga di comando da passare insieme a python.exe.
Jim Raynor,



6

Se si utilizza python 3.x è necessario modificare il file Python3.sublime-build

(Preferenze> Sfoglia pacchetti> Python 3)

assomigliare a questo:

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

4

[Questo vale per ST3 (Win), non sono sicuro di ST2]

Per visualizzare l'output in Sublime come un altro file (+ uno per gli errori), procedere come segue:

  1. Crea un nuovo sistema di compilazione: Tools > Build Systems > New Build System...
  2. Utilizzare la seguente configurazione:
    {
        "cmd": ["python.exe", "$ file", "1>", "$ nome_file .__ STDOUT __. txt", "2>", "$ nome_file .__ STDERR __. txt"],
        "selector": "source.python",
        "shell": vero,
        "working_dir": "$ file_dir"
    }
  1. Per il tuo file Python seleziona il file di configurazione del sistema build sopra: Tools > Build Systems > {your_new_build_system_filename}
  2. ctrl + b
  3. Ora, accanto al tuo file, ad es. "file.py"Avrai "file.__STDOUT__.py"e "file.__STDERR__.py"(per eventuali errori)
  4. Se dividi la finestra in 3 colonne o in una griglia, vedrai immediatamente il risultato, senza la necessità di cambiare pannello / finestra

2

Ragazzi fighi, ho appena trovato questo:

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

Spiega (come una delle risposte sopra) come modificare questo exec.py nella directory predefinita .

Ho avuto il problema che la mia APPLICAZIONE UI PYTHON non si avviava. Ho commentato l'ultima riga dal seguente frammento:

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

e, taaadaaaa, ho potuto avviare la mia app premendo Ctrl + B. Linea divertente comunque, eh? E un grande grazie a chiunque abbia scritto quell'articolo ;-)


Risolto anche il mio problema. L'output della console veniva visualizzato in Sublime Text 2, a dimostrazione che il mio codice era in esecuzione, ma la mia GUI non è mai stata visualizzata. Ho commentato quella riga e ora eccola. L'output della console passa ancora a Sublime Text. Perfetto!
Jonathan Lidbeck,

1

Puoi accedere alla console Python tramite "Visualizza / Mostra console" o Ctrl+ `.


1
ma mostra il seguente errore: File ". \ exec.py", riga 109, nel file Run ". \ ntpath.py", riga 205, nel file dirname ". \ ntpath.py", riga 170, nel file diviso ". \ ntpath.py", riga 125, in splitdrive TypeError: l'oggetto 'NoneType' non è sottoscrivibile
neo

Fornisci maggiori dettagli (espandendo la domanda) su cosa stai facendo.
colpì il

scrivo semplicemente il codice Python come print 'ciao' e poi lo costruisco e apro la console per vedere questo errore.
neo

L'uso della console Python non risponde alla domanda . L'interprete incorporato intende solo interagire con l'API del plug-in, non per lo sviluppo generale.
mkenyon,

1

Ho risolto questo problema:

> Preferences –> Browse Packages –> Default 

Apri il exec.pyfile, vicino alla linea 41-42, il codice dovrebbe apparire così:

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

quindi eliminalo o modificalo come:

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

cosa fa effettivamente? Come aiuta
Qwerty,

@Qwerty Pensava che il programma dovesse gestire le eccezioni, quindi ha inserito il codice in un tryblocco.
CHM,

Ci ho provato Non ha risolto il problema e ha rotto il comportamento esistente.
Jonathan Lidbeck,

1

Oggi ho riscontrato lo stesso problema. Ed ecco come sono riuscito a eseguire il codice Python in Sublime Text 3:

  1. Premi Ctrl+ B(per Mac, + B) per avviare il sistema di generazione. Ora dovrebbe eseguire il file.
  2. Segui questa risposta per capire come personalizzare il sistema di compilazione.

Quello che dovete fare dopo è sostituire il contenuto Python.sublime-builddi

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

Ovviamente puoi personalizzarlo ulteriormente su qualcosa che funzioni per te.


1

In Python v3.x si dovrebbe andare a: Tools->Build System->New Build System.

Quindi, apre la finestra untitled.sublime-build nell'editor di testo sublime. Immettere l'impostazione come:

{

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

Per vedere il percorso Type following in terminal as,:

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

Puoi creare più di un sistema di compilazione, ma dovrebbe salvare per impostazione predefinita all'interno di pacchetti di testo Sublime con estensione .sublime-build .

Quindi, seleziona il nuovo Build System e premi cltr+bo altro in base al tuo sistema operativo.


0

Ho avuto lo stesso problema. Probabilmente non hai ancora salvato il file. Assicurati di salvare il tuo codice con l'estensione .py e dovrebbe funzionare.


0

Una cosa da notare sul suddetto sistema di compilazione : è possibile scrivere (e utilizzare) .sublime-buildfile personalizzati o anche per build_systemsclausola di progetto (nelle impostazioni del progetto). Ciò ti consente di fare cose utili come un fantasioso test runner con output di colori ANSI .

Per funzionalità ancora più "IDE complete", è possibile utilizzare l'eccellente pacchetto SublimePythonIDE :

  • completamento del codice (intel)
  • passa alla definizione e alla descrizione dell'oggetto
  • lanugine / pep8 adeguati
  • supporta diversi interpreti con virtualenv

Divulgazione: ho contribuito con un PR a quel pacchetto e lo uso sempre, ma ce ne sono altri .


0

Usa una vera console Python insieme a Sublime

Sia il sistema di compilazione di Sublime che SublimeREPL (le risposte sopra) sono limitati in quanto non è possibile interagire facilmente con le variabili dell'area di lavoro dopo aver eseguito il file.

Se vuoi eseguire uno script, quindi lavorare in modo simile a REPL (come faresti con un IDE), allora ti consiglio di aprire Sublime insieme a una console IPython. Utilizzando AutoHotKey (Windows) o AutoKey (Linux), è possibile impostare questo in modo tale che un singolo collegamento copierà il nome del file (o solo il codice selezionato) e quindi lo incolli nella console per eseguire il file.

Istruzioni dettagliate per Linux o Windows

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.