Abarone.it Logo

IDE per per sviluppare con Django

Quale ide scegliere

Scegliere il Miglior Python

In this article I’ll review six Python IDEs. I’m mainly interested in IDEs that are cross-platform and have strong web development support (Django, HTML templates, JavaScript, etc). Because of this, well-regarded IDEs like PyScripter and Python Tools for Visual Studio are out since they are Windows-only. The Python website maintains a full list of Python IDEs.

PyCharm

PyCharm is one of the most popular Python IDEs and deservedly so. It’s packed with features such as incredible code completion, code analysis, code navigation, top-notch Django, JavaScript, HTML, and CSS support, great debugger, and much more.

pycharm

I wrote extensively about it before, so I won’t be a bore and repeat it here. The TL;DR is “PyCharm is a great Python IDE and you should definitely check it out”.

PyCharm main shortcomings is that it can be slow and its UI looks non-native in most platforms. In all fairness, PyCharm has come a long way in terms of UI and font rendering. The following is a screenshot of PyCharm, TextMate, and Emacs, respectively. I think PyCharm compares positively with TextMate:

pycharm-font

Sometimes PyCharm does feel slow, but it’s improving in each version. The current version feels much faster than the first version. In fact, it’s a no brainer if you consider that PyCharm gives you top-notch completion, code analysis and code navigation. As a comparison, Emacs starts much faster in my computer, but completion with ropemacs is way slower and less accurate than PyCharm’s.

PyCharm has great support and bugs are fixed regularly. It has good documentation, although I wish the on-line documentation had a more modern look with shallower structure. For example, the subsection “Version Control with PyCharm” is subdivided in eight subsections that are small enough to fit in one larger and easily scrollable page. Also, it would be nice to have the documentation as a PDF file.

pycharm-documentation

WingIDE

WingIDE is a solid IDE from Wingware that has been in development since 1999. It has many advanced features such as a first-rate debugger, code intelligence, and it can be extended in Python.

WingIDE’s debugger is super powerful and allows you to set breakpoints, step through code, inspect data, debug remotely, and debug Django templates. It has support for matplotlib where the plots are updated automatically.

wingide

For web development, WingIDE supports Django, Plone, Pyramid, Google App Engine and many others.

My main criticism is that the GUI, although responsive, is unattractive, old-fashioned, and quirky.

For instance, you can’t just open an existing directory like you can with PyCharm or TextMate; you need to create a new project (Project?New Project). But WingIDE doesn’t ask for the project’s name. The project will receive a default name and you can rename it if you want (Project?Save Project). Now you can add files or an existing directory (Project?Add Existing Directory).

And when you add a directory, it’s added to the Project pane folded (that is, the files and subdirectories are hidden) by default:

image

I hate being persnickety, but the first time I imported a Django project I was staring at the screen wondering what went wrong since nothing happened. After a while a noticed the small change in the left corner.

In general you can’t discover much from the UI. There’s no explicit support for Virtualenv; we need to select the Python binary in Project?Project Properties. This is not a big deal, but if we need to set a Django Settings module we need to type it in a text box, instead of just selecting the file directly with a file dialog. And, as we all know, it’s easy to make mistakes when typing. For example, in the following screenshot the value for DJANGO_SETTINGS_MODULE is wrong. After trying to run the code I realized that it should be ${DJANGO_SITENAME}.project.settings.

image

We can see the lack of discoverability in setting custom hotkeys as well. In order to (re-)bind a command we need to check the list of commands in the manual and type it in the text box (it has completion). Again, it’s not a huge deal, but it’s nice when you can accomplish things without leaving the IDE.

wing-custom-keys

Hopefully, Wingware is aware (no pun intended) of these shortcomings and seems to be working to fix them (not needing X11 to run it on the Mac is a step on the right direction).

If you are trying WingIDE, my advice is to stick to it for a while. They UI may seen a little off at first, but it has many useful and powerful features underneath and a great support for web and scientific programming.

PyDev

PyDev is a Python IDE for Eclipse with Django support, code completion, code analysis, navigation, remote debugging, interactive console and much more. You can install it as a plugin for Eclipse or by installing LiClipse, an advanced Eclipse distribution.

eclipse-debug

Eclipse seems to be one of those things that people either love or hate. It has good ideas and even Emacs creator Richard Stallman was impressed by it. However, sometimes things in Eclipse are unnecessarily complicated. For instance, the way it imports code in a project is just moronic. I find that I need to search or look up the documentation to accomplish even the simplest task such as changing the text font. This is not PyDev’s fault and, if anything, PyDev maintainer Fabio Zadrozny deserves big kudos for making it bearable to work with Python in Eclipse.

LiClipse adds support not only for Python, but for related languages such as CoffeScript, JavaScript, Django Templates, and much more. My main criticism is that it needs more and better documentation.

If you are already sold (or stuck ???? on the Eclipse platform, PyDev is for you. If you want to try it out but has never used Eclipse before, I suggest you get a book to get acquainted with the Eclipse way of doing things.

Komodo IDE

Komodo is an IDE for dynamic languages such as Python, PHP and Ruby. The new version has many improvements such as code refactoring, multiple selections, better UI interface, open fast dialog, and much more.

komodo

Komodo IDE is pleasant and its configurations are easy to find and change. I like the editor and font rendering. Although the new version claims to have better OS X support, it doesn’t support the cocoa textbox shortcuts by default (such as Control-A and Control-E). It doesn’t have direct support for Virtualenv, but you can pick the Python interpreter in Project?Properties.

It has some support for Django, such as syntax highlighting and code completion for templates. (Although I couldn’t get it to work properly. Other people seem to be having problems with completion as well.)

It’s a good IDE if you deal with multiple languages and don’t do much web programming. Otherwise I think PyCharm, WingIDE, and PyDev are way ahead for a more reasonable price.

Eric

Eric is an open-source IDE for Python and Ruby with the ugliest mascot I have ever seen. It scares the bejesus out of me!

It toke me a while to install it as it has zero installation instructions. I tried to install Eric 5 (for Python 3) but after failing I decided to install Eric 4 (for Python 2) instead. I followed this receipt as a guide. I installed the dependencies with homebrew and ran the install.py script:

brew install qt pyqt qscintilla2
export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH
sudo python install.py
Eric has a nice collection of features such as Python and Ruby debugger, code coverage, automatic code checking, Python and Ruby shell, class browser, and others. And it has features for collaborative editing (thanks to jgmitzen for pointing that out). However, to me, Eric seems more like an editor with some IDE features rather than a full-fledged IDE (not that there’s anything wrong with that).(I take that back, Eric is a full-fledged IDE, that was the caffeine talking ;-)) However, its documentation is sparse and consists of a couple of technical reports.

Eric is being actively maintained (a new version for both Eric 4 and 5 was released a few days ago) but its lack of support for Django and web programming means that I’ll pass.

IEP

IEP is an Interactive Editor for Python and not really an IDE. It may be useful for people looking for a Matlab replacement. It supports multiple Python shells simultaneously and you can program GUI toolkits such as PySide, PyQt4, wx, fltk, GTK, and Tk interactively.

iep

It’s open source and written in pure Python 3. Although it’s not a complete Python IDE, I’d love to see this level of interactivity in the other IDEs.

Conclusion

If you are looking for a full-fledged and cross-platform IDE, PyCharm, WingIDE, and PyDev are really your best choices.

Both PyCharm and WingIDE are well-priced and have personal and academic licenses, plus free licenses for classroom use and open source developers. PyDev is free and a LiClipse license is $50, which is a no-brainer if you need to work with Eclipse.

My IDE of choice is PyCharm. It is very good already and because its developers keep improving it, I have no doubt PyCharm is going to be even better in the future.

You can’t go wrong with WingIDE as well. It has outstanding features and a remarkable debugger. WingIDE developer’s know it needs some UI improvement and keep launching new versions.

I have a lot of respect for PyDev’s developer, but I can’t really stomach Eclipse; maybe it’s me. If you are into Eclipse, you should check LiClipse out as it will do a lot for you out-of-the-box.


Scegliere il miglior IDE Python

In questo articolo esaminerò sei editore IDE di sviluppo per Python. Sono soprattutto interessato a IDE che sono cross-platform e che hanno un forte sostegno allo sviluppo web (Django, modelli HTML, JavaScript, ecc). Peciò escludo per ora IDE conosciuti e buoni come PyScripter e Python Tools per Visual Studio in quanto sono solo per piattaforma Windows. Il sito web di Python mantiene un elenco completo di Python IDE.

PyCharm
PyCharm è uno dei più popolari IDE Python e lo è meritatamente. E' dotato di caratteristiche davvero buone, quale il completamento del codice, l'analisi del codice, il codice di navigazione, top-notch Django, JavaScript, HTML, e supporto dei CSS, debugger e molto altro.
PyCharm è un grande IDE Python e consiglio a tutti assolutamente di provarlo.

Tra i principali difetti di PyCharm è che può essere lento e la sua interfaccia utente sembra non nativa nella maggior parte delle piattaforme. In tutta onestà, PyCharm ha fatto molta strada in termini di interfaccia utente e il rendering dei font. Di seguito è uno screenshot di PyCharm, TextMate, e Emacs, rispettivamente. Penso PyCharm confronta positivamente con TextMate:

PyCharm-font
E' vero che PyCharm è lento, ma sta migliorando in ogni versione. La versione attuale è molto più veloce rispetto alla prima versione. In realtà, la lentezza è solo un'apparente lentezza, se si considera che PyCharm ha completamento del codice di prim'ordine, analisi del codice e navigazione del codice. A titolo di confronto, Emacs si avvia molto più velocemente, ma il completamento automatico del codice con emacs è molto più lento e meno accurato rispetto PyCharm.

PyCharm ha un grande sostegno e gli insetti sono fissi regolarmente. Ha una buona documentazione, anche se vorrei che la documentazione on-line ha un look più moderno con la struttura profonda. Ad esempio, la sottosezione "Version Control con PyCharm" è suddiviso in otto sezioni che sono abbastanza piccolo da stare in una pagina più grande e facilmente scorrevole. Inoltre, sarebbe bello avere la documentazione in formato PDF.

PyCharm documentazione

WingIDE
WingIDE è un solido IDE da Wingware che è stato in sviluppo dal 1999. Ha molte caratteristiche avanzate come un debugger di prim'ordine, il codice di intelligenza, e può essere esteso in Python.

Debugger di WingIDE è super potente e permette di impostare i punti di interruzione, passa tramite codice, ispezionare i dati, eseguire il debug remoto, ed eseguire il debug modelli Django. Ha il supporto per matplotlib dove le trame vengono aggiornati automaticamente.

WingIDE

Per lo sviluppo web, WingIDE supporta Django, Plone, Piramide, Google App Engine e molti altri.

La mia critica principale è che l'interfaccia grafica, anche se sensibile, è poco attraente, vecchio stile, e eccentrico.

Per esempio, non si può semplicemente aprire una directory esistente come si può con PyCharm o TextMate; è necessario creare un nuovo progetto (progetto? Nuovo progetto). Ma WingIDE non chiede per il nome del progetto. Il progetto riceverà un nome di default ed è possibile rinominarlo se si vuole (Project? Salva progetto). Ora è possibile aggiungere file o una directory esistente (progetto? Aggiungi directory esistente).

E quando si aggiunge una directory, è aggiunto al pannello Progetto ripiegato (cioè, i file e le sottodirectory sono nascosti) per impostazione predefinita:

immagine

Odio essere persnickety, ma la prima volta che ho importato un progetto Django stavo a fissare lo schermo domandandosi cosa sia andato storto da quando non è successo niente. Dopo un po 'un notato il piccolo cambiamento nell'angolo sinistro.

In generale non è possibile scoprire molto dall'interfaccia utente. Non c'è alcun supporto esplicito per virtualenv; abbiamo bisogno di selezionare il binario Python in proprietà del progetto del progetto?. Questo non è un grosso problema, ma se abbiamo bisogno di impostare un modulo Impostazioni Django abbiamo bisogno di digitare in una casella di testo, invece di selezionare il file direttamente con una finestra di dialogo. E, come tutti sappiamo, è facile commettere errori durante la digitazione. Ad esempio, nello screenshot seguente il valore per DJANGO_SETTINGS_MODULE è sbagliato. Dopo aver tentato di eseguire il codice mi sono reso conto che dovrebbe essere $ {} DJANGO_SITENAME .project.settings.

immagine

Possiamo vedere la mancanza di reperibilità nella definizione tasti di scelta rapida personalizzati. Per (ri) associare un comando abbiamo bisogno di controllare l'elenco dei comandi nel manuale e digitare nella casella di testo (ha completamento). Anche in questo caso, non è un affare enorme, ma è bello quando si può realizzare le cose senza lasciare l'IDE.

wing-custom-keys

Speriamo, Wingware è consapevole (no pun intended) di queste carenze e sembra funzionare per risolverli (non avendo bisogno di X11 per funzionare su Mac è un passo nella direzione giusta).

Se si sta tentando WingIDE, il mio consiglio è quello di attenersi ad esso per un po '. Essi possono UI visto un po 'fuori in un primo momento, ma ha molte caratteristiche utili e potenti sotto e un grande sostegno per il web e la programmazione scientifica.

Pydev

PyDev è un IDE Python per Eclipse con il supporto di Django, il completamento del codice, analisi del codice, la navigazione, il debug remoto, console interattiva e molto altro ancora. È possibile installarlo come un plugin per Eclipse o installando LiClipse, una distribuzione avanzata Eclipse.

eclipse-debug

Eclipse sembra essere una di quelle cose che la gente ama o si odia. Ha buone idee e anche Emacs creatore Richard Stallman è stato colpito da essa. Tuttavia, a volte le cose in Eclipse sono inutilmente complicate. Per esempio, il modo in cui importa codice in un progetto è solo stupido. Trovo che ho bisogno di cercare o cercare la documentazione per realizzare anche il compito più semplice come cambiare il carattere del testo. Questo non è colpa di PyDev e, semmai, PyDev manutentore Fabio Zadrozny merita grandi complimenti per aver reso sopportabile lavorare con Python in Eclipse.

LiClipse Aggiunge il supporto non solo per Python, ma per le lingue correlati come CoffeScript, JavaScript, Django modelli e molto altro ancora. La mia critica principale è che ha bisogno di più e meglio la documentazione.

Se sei già venduto (o bloccato ???? sulla piattaforma Eclipse, PyDev è per voi. Se volete provarlo, ma non ha mai usato Eclipse prima, io suggerisco di ottenere un libro per fare la conoscenza con il modo di Eclipse fare le cose.

Komodo IDE

Komodo è un IDE per linguaggi dinamici come Python, PHP e Ruby. La nuova versione ha molti miglioramenti, come il refactoring del codice, selezioni multiple, interfaccia utente migliore, finestra aperta veloce, e molto altro ancora.

komodo

Komodo IDE è piacevole e le configurazioni sono facili da trovare e cambiare. Mi piace l'editor e rendering dei font. Anche se la nuova versione sostiene di avere un miglior supporto OS X, non supporta le scorciatoie cacao casella di testo per default (come il controllo-A e Control-E). Non ha il supporto diretto per virtualenv, ma è possibile scegliere l'interprete Python in Project? Proprietà.

Ha qualche supporto per Django, come ad esempio l'evidenziazione della sintassi e completamento del codice per i modelli. (Anche se non ho potuto farlo funzionare correttamente. Altre persone sembrano avere problemi con il completamento pure.)

E 'un buon IDE se avete a che fare con più lingue e non fare molto la programmazione web. Altrimenti penso PyCharm, WingIDE e pydev sono via da percorrere per un prezzo più ragionevole.

Eric

Eric è un IDE open-source per Python e Ruby con la mascotte più brutta che abbia mai visto. Spaventa la bejesus fuori di me!

E toke me un po 'per installarlo in quanto ha le istruzioni di installazione pari a zero. Ho provato ad installare Eric 5 (per Python 3), ma dopo aver fallito ho deciso di installare Eric 4 (per Python 2), invece. Ho seguito questa ricevuta come guida. Ho installato le dipendenze con homebrew e corse lo script install.py:

brew installare qt PyQt qscintilla2 export PYTHONPATH = / usr / local / lib / python2.7 / site-packages: $ PYTHONPATH sudo python install.py Eric ha una bella collezione di caratteristiche come Python e debugger Ruby, copertura del codice, la verifica automatica del codice , Python e Ruby shell, browser di classe, e altri. Ed ha caratteristiche per l'editing collaborativo (grazie a jgmitzen per la segnalazione). Tuttavia, per me, Eric sembra più un editor con alcune caratteristiche IDE piuttosto che un IDE completo a tutti gli effetti (non che ci sia qualcosa di sbagliato in questo). (Prendo che indietro, Eric è un IDE a tutti gli effetti, che era la caffeina parlando ;-)) Tuttavia, la sua documentazione è scarsa e consiste in un paio di rapporti tecnici.

Eric viene mantenuta attiva (una nuova versione sia per Eric 4 e 5 è stato rilasciato pochi giorni fa), ma la sua mancanza di supporto per Django e programmazione web significa che io passo.

IEP

PEI è un editor interattivo per Python e non è davvero un IDE. Può essere utile per le persone in cerca di un sostituto Matlab. Supporta più shell Python contemporaneamente e si può programmare GUI toolkit quali PySide, PyQt4, wx, FLTK, GTK, e Tk in modo interattivo.

IEP

E 'open source e scritto in puro Python 3. Anche se è non è un IDE Python completo, mi piacerebbe vedere questo livello di interattività negli altri IDE.

Conclusione
Se siete alla ricerca di un IDE a completo sotto tutti i punti di vista e cross-platform, PyCharm, WingIDE e pydev sono davvero le scelte migliori.

Sia PyCharm e WingIDE sono a buon prezzo e di avere licenze personali e accademici, oltre a licenze gratuite per l'uso in classe e sviluppatori open source. PyDev è gratuito e una licenza LiClipse è di $ 50, che è un gioco da ragazzi, se avete bisogno di lavorare con Eclipse.

La mia IDE di scelta è PyCharm. E 'molto buono e già perché i suoi sviluppatori continuano a migliorarla, non ho dubbi PyCharm sarà ancora meglio in futuro.

Non si può sbagliare con WingIDE pure. Ha caratteristiche importanti e un debugger notevole. WingIDE sviluppatore di sapere che ha bisogno di qualche miglioramento dell'interfaccia utente e mantenere il lancio di nuove versioni.

Ho molto rispetto per lo sviluppatore di PyDev, ma non posso davvero stomaco Eclipse; forse sono io. Se siete in Eclipse, si dovrebbe verificare LiClipse come farà molto per voi out-of-the-box.


barone.antonio@libero.it