2010-07-06 14 views
8

Ho sviluppato un progetto in python negli ultimi sei mesi e amo la lingua. Ma devo ancora trovare un IDE o un editor di testo che potrebbe fornire alcune funzionalità extra per me. Al momento ho l'evidenziazione della sintassi che è una delle cose più facili da ottenere, ma non molto di più. Sto sognando di far saltare la mia IDE sul mio codice che ha causato il crash invece di leggere il numero della linea dal backtrace e localizzarlo manualmente nel mio editor di testo. Ho cercato qualcosa che potesse farlo sotto i miei limiti di sviluppo, ma senza successo. Miei vincoli sono i seguenti:Codifica remota ed esecuzione con python: quale IDE?

  • Il codice pitone fase di sviluppo poggia su un computer remoto, equipaggiata con abbastanza RAM e CPU per eseguire il codice. Quella macchina non ha schermo o tastiera.
  • Codice dal mio laptop, un MacBook Pro che esegue OS X che non è pensato per eseguire il codice.
  • Il computer remoto esegue Fedora 12 e fornisce connettività SSH con accesso root.
  • La mia connessione non è abbastanza buona in casa per eseguire un IDE X11 sulla macchina remota e avere l'interfaccia visualizzata sulla mia macchina.

Quello che ho fatto fino ad ora è l'accesso al computer remoto tramite SSH utilizzando l'eccellente client CyberDuck. Ciò mi consente di aprire un file di testo che si trova sulla macchina remota all'interno di uno qualsiasi dei miei editor di testo locali come TextMate o TextWrangler e le modifiche vengono caricate automaticamente ogni volta che il file viene salvato. Questo ti dà davvero l'abbattimento che stai modificando il file remoto nella tua solita interfaccia di cacao.

Poi per eseguire il codice python, apro una seconda connessione SSH, questa volta utilizzando un terminale in cui mi sarebbe digitare:

$ ssh [email protected] 
$ ipython -pylab 
$ execfile("/projectdir/code.py") 

Finalmente, ho letto il backtrace e tornare al mio editor di testo locale per trovare il numero di linea corretto. Ci deve essere un modo migliore! Qualche idea ?

risposta

2

Potrebbe piacerti o meno questo suggerimento, ma vorrei usare vim, impostando makeprg e errorformat in modo appropriato. In questo modo è possibile eseguire ssh in come normalmente, modificare i file direttamente sul computer remoto e compilare/correggere gli errori utilizzando quickfix-errorlist. Ti costerà solo il tempo per impostare makeprg e errorformat correttamente. Se fai un po 'di scavo, le informazioni sono disponibili.

EDIT

  1. ssh [email protected]
  2. Mettere le linee in fondo a questa risposta in ~/.vimrc
  3. vim somemodule.py
  4. Type ": make somemodule.py "
  5. Digitare": cw "che potrebbe corrispondere a c come nella lingua, finestra
  6. vim aprirà una finestra [Elenco Quickfix]
  7. cursore su un errore nel [Elenco Quickfix]
  8. Premere Invio
  9. vim cambia il vostro cursore sulla finestra sopra e lo inserisce l'errore
  10. Fissare l'errore usando le vostre abilità vim, ": h" per aiuto e tutorial
  11. Ctrl + w, j sposta il cursore verso il basso una finestra, torna alla tua lista quickfix
  12. Ctrl + w, k si sposta il cursore su una finestra
  13. Ripetere i punti 7 -12 se necessario
  14. ": make somemodule.py" per essere sicuro di aver aggiustato tutto
  15. Benvenuto te stesso al buio, regole vim.

~/.vimrc impostazioni:

"python makeprg settings 

setlocal makeprg=python\ % 

setlocal errorformat= 
     \%A\ \ File\ \"%f\"\\\,\ line\ %l\\\,%m, 
     \%C\ \ \ \ %.%#, 
     \%+Z%.%#Error\:\ %.%#, 
     \%A\ \ File\ \"%f\"\\\,\ line\ %l, 
     \%+C\ \ %.%#, 
     \%-C%p^, 
     \%Z%m, 
     \%-G%.%# 

Impostazione makeprg dice a Vim che il vostro "compilatore" è Python. L'impostazione del formato di errore indica a vim come analizzare l'output del "compilatore" in modo da poter passare alle righe di errore. Guardati intorno su internet, ci sono molti suggerimenti su Vimrc per la programmazione in Python. Ci sono anche le impostazioni makeprg/errorformat per Xcode/Visual C++/Perl/etc che rendono davvero vim una situazione win-win se si programma in diverse lingue. Ci sono anche altre cose di fantasia come l'autoindent, il completamento del codice e l'evidenziazione della sintassi. Divertiti con

Nota: queste impostazioni sono state prese quasi alla lettera dal here.

+0

Ho pensato di usare un editor di testo terminale come emacs o vim.Potrei essere pronto per l'interfaccia ridotta. Ma questa soluzione mi farà saltare alla riga corretta quando l'esecuzione si blocca? – xApple

+1

Dato che hai mostrato interesse, ho modificato la mia risposta – manifest

+0

Dato che "compilare" ed eseguire un programma python sono essenzialmente gli stessi da un punto di vista vim ti porterà sulla linea corretta quando l'esecuzione si blocca – manifest

0

Dovresti tenere d'occhio PyCharm: non è ancora pronto per la produzione, ma ha un potenziale reale per essere un grande IDE. Lo sto usando da circa 7 mesi: puoi rinnovare la prova gratuita di 45 giorni purché tu mantenga la tua build aggiornata. Credo che il debug remoto sia una funzionalità supportata dalla versione di produzione.

+0

Avevo installato PyCharm durante la ricerca di un IDE migliore, ma, come dici tu, il debug remoto non è ancora incluso. Terrò d'occhio naturalmente. – xApple

+2

Avanziamo rapidamente fino al 2014 e PyCharm PRO ora ha un ottimo debug remoto. Supporta due modalità, il debug di server e ssh. – jhexp

2

questo è un buon list of Python-Editors.

A mio parere WingIDE (c'è una versione gratuita) è molto ricco di funzionalità, buono e facile e supporta Remote-Debugging (solo nella versione commerciale). Anche il plugin PyDev Eclipse, che è completamente gratuito, merita di essere esaminato e sembra supportare Remote-Debugging.

+0

WingIDE potrebbe essere all'altezza del compito ... Tuttavia affermano che "Dal momento che il debug remoto è abbastanza complicato da configurare, al momento consigliamo di utilizzare la visualizzazione remota dell'IDE tramite X Windows". Inoltre, questo è solo per il debug, non ti consente di modificare i file sul computer remoto ed eseguirli direttamente. Sta a te trasferire e sincronizzare tutto il tuo codice tra entrambe le macchine ad ogni corsa. – xApple

0

Sono passati anni da quando l'ho usato, ma la versione commerciale di Komodo include un debugger remoto ed è generalmente un pacchetto molto competente per la programmazione Python.

In alternativa, è possibile provare un debugger remoto autonomo: WinPdb - che, nonostante il nome, funziona su Mac e Linux - è molto buono.

+0

Purtroppo il forking 300USD non è un'opzione per me al momento. – xApple

+0

Sì, la mia esperienza risale a quando ti hanno concesso una versione completa per uso personale non commerciale. –

+0

Ho usato WinPdp e ho capito come collegarlo a un processo. Tuttavia questo non fornisce una soluzione per la modifica remota dei file e la loro esecuzione automatica. – xApple