2009-06-06 17 views
9

Attualmente lavoro esclusivamente con .NET e mi piacerebbe provare su Python. A tal fine ho bisogno di creare un ambiente di sviluppo python. La guida a questo sarebbe utile. Immagino che farei lo sviluppo web, quindi avrò bisogno di un server web e probabilmente di un database. Ho anche bisogno di riferimenti a popolari ORM, un framework MVC e una libreria di test.Ho bisogno di una guida per principianti per impostare le finestre per lo sviluppo di python

Uno dei miei criteri principali con tutto questo è che voglio capire come funziona, e voglio che sia il più isolato possibile. Questo è importante in quanto sono cauto nell'inquinamento su un ambiente .NET funzionante con server Web e database di terze parti. Sono perfettamente felice di usare SQLite per iniziare se è possibile.

Se mi trovo bene con questo, è anche probabile che voglia configurare il build automatizzato e il server ci (su una macchina virtuale, probabilmente ubuntu). Qualche suggerimento per questi sarebbe utile.

Il mio obiettivo finale, se mi piace python, è di avere strumenti di questo tipo che ho a disposizione con .NET e di capire veramente la costruzione e l'implementazione di tutto questo. Per cominciare mi accontenterò di un ambiente di sviluppo semplice che sia il più isolato possibile e che sarà facile da rimuovere se non mi piace. Non voglio usare IronPython perché voglio sfruttare appieno lo sviluppo di una soluzione python utilizzando gli strumenti e i framework generalmente utilizzati.

+0

correlate: 'Python ambiente di installazione su Windows', http://stackoverflow.com/questions/182053/ – Jonik

risposta

5

Non è così difficile da impostare un ambiente Python, e non ho mai avuto muck il mio lavoro .NET. Fondamentalmente, installa Python --- Io userei 2.6 piuttosto che 3.0, che non è ancora ampiamente accettato --- e lo aggiungo al tuo PATH, e tu sei pronto per andare con la lingua. Non raccomanderei l'uso di una macchina virtuale Ubuntu come ambiente di sviluppo; se stai lavorando su Windows, potresti anche sviluppare su Windows, e non ho avuto problemi significativi a farlo. Vado avanti e indietro da Windows a Linux senza problemi.

Se si dispone di un editor con cui si ha dimestichezza con il supporto di base per Python, ci rimango. In caso contrario, ho trovato Geany un editor bello, leggero e facile da usare con un buon supporto Python, anche se io uso Emacs perché lo so; altre persone come SCITE, NotePad++ o uno qualsiasi di altri. Eviterei IDE di fantasia per Python, perché non corrispondono al carattere del linguaggio, e non mi preoccuperei di IDLE (incluso in Python), perché è un dolore reale da usare.

Suggerimenti per librerie e framework:

  • Django è il framework web serie, ma è grande e si deve lavorare modo di Django; Io preferisco lo CherryPy, che è anche supportato attivamente, ma è leggero, offre una grande libertà e contiene un server web bello e solido che può essere facilmente sostituito con httpd.
  • Django include il proprio ORM, che è abbastanza carino; c'è uno stand-alone per Python, però, che è ancora più bello: SQL Alchemy
  • Per quanto riguarda una libreria di test va, pyunit mi sembra essere la scelta più ovvia

Buona fortuna, e benvenuti ad una davvero divertente linguaggio!

Riepilogo di EDIT: originariamente consigliato Karrigell, ma non posso più: a partire dalla versione 3.0, è stato interrotto continuamente e la comunità non è abbastanza grande per risolvere i problemi. CherryPy è un buon sostituto se ti piace una struttura leggera e semplice che non ti intralci, quindi ho modificato il precedente per suggerirlo.

+0

Grazie. Questo e 'esattamente quello che stavo cercando. Attualmente uso e! come il mio solito editor di testo e userò quello che penso per lo sviluppo di python. –

3

Beh, se stai pensando di creare un Ubuntu VM in ogni caso, si potrebbe anche fare che il vostro ambiente di sviluppo. Quindi puoi installare Apache e MySQL o Postgres su quella VM solo tramite gli strumenti di packaging standard (apt-get install), e non c'è pericolo di inquinare il tuo ambiente Windows.

È possibile eseguire lo sviluppo effettivo sulla macchina Windows tramite l'IDE preferito, utilizzare la VM come unità di rete e salvarne il codice, oppure utilizzare la VM come ambiente desktop completo e fare tutto lì, che è quello che vorrei raccomandare.

3

Installare la versione ActivePython preconfigurata da activestate. Tra le altre caratteristiche, include PythonWin IDE (solo Windows) che rende semplice esplorare Python in modo interattivo.

Il riferimento consigliato è Dive Into Python, menzionato più volte in discussioni SO simili.

+1

Dive Into Python rocks :) – rslite

3

Dovresti installare python 2.4, python 2.5, python 2.6 e python 3.0 e aggiungere al tuo percorso quello che usi più spesso (Aggiungi c: \ Pythonxx \ e c: \ Pythonxx \ Scripts).

Per ogni python 2.x, installare easy_install; Scarica ez_setup.py e poi dal cmd:

c:\Python2x\python.exe x:\path\to\ez_setup.py 
c:\Python2x\Scripts\easy_install virtualenv 

Poi ogni volta che si avvia un nuovo progetto di creare un nuovo ambiente virtuale per isolare il pacchetto specifico si ha bisogno per il vostro progetto:

mkdir <project name> 
cd <project name> 
c:\Python2x\Scripts\virtualenv --no-site-packages .\v 

crea una copia di python e delle sue librerie in .v \ Scripts e. \ v \ Lib. Ogni pacchetto di terze parti che si installa in quell'ambiente verrà inserito in. \ V \ Lib \ site-packages. I pacchetti -no-site non danno accesso al pacchetto del sito globale, quindi puoi essere certo che tutte le tue dipendenze siano in. \ V \ Lib \ site-packages.

Per attivare l'ambiente virtuale:

.\v\Scripts\activate 

Per i quadri, ci sono molti. Django è fantastico e molto ben documentato, ma probabilmente dovresti guardare prima a Pylons per le sue documentazioni su Unicode, Packaging, Distribuzione e Test e per il suo migliore supporto WSGI.

Per l'IDE, Python viene fornito con IDLE che è sufficiente per l'apprendimento, tuttavia si potrebbe voler guardare Eclipse + PyDev, Komodo o IDE Python Wingware. Netbean 6.5 ha il supporto beta per Python che sembra promettente (Vedi top 5 python IDE).

Per il server web, non ne avete bisogno; Python ha il proprio e tutto il framework web viene fornito con il proprio. Si potrebbe voler installare MySql o ProgreSql; spesso è meglio sviluppare sullo stesso DB che userete per la produzione.

Inoltre, quando hai imparato Python, guarda Foundations of Agile Python Development o Expert Python Programming.

+0

Sembra molto interessante. Puoi spiegare cosa fa l'installazione di questi ambienti isolati? Copia il runtime nella directory in cui ti stai sviluppando? –

+0

Si noti che ActivePython include già virtualenv/easy_install e il proprio gestore di pacchetti binari (PyPM); in futuro includerà anche pip e IPython. –

0

Python dispone di un database SQL e di un server Web, quindi non è necessario installare app di terze parti. Ricorda che Python viene fornito con batterie incluse.

1

Ambiente?

Ecco la soluzione più semplice:

  • Installare Active Python 2.6. È lo stesso Python, ma ha alcune cose utili extra, come DiveintoPython chm.

  • Utilizzare Komodo Edit 5. È tra i migliori editor gratuiti che puoi usare per Python.

  • Utilizzare IDLE. È il miglior editore di frammenti brevi più semplice, con l'evidenziazione della sintassi e il completamento automatico ineguagliati dalla maggior parte degli altri IDE. Viene fornito in bundle con Python.

  • Utilizzare Ipython. È una shell che esegue l'evidenziazione della sintassi e il completamento automatico, le funzioni di bash, la bella stampa, la registrazione, la cronologia e molte altre cose.

  • Installa easy_install e/o pip per l'installazione di varie app di terze parti facilmente.

Proveniente da Visual Studio e .Net suonerà molto diverso, ma è un mondo completamente diverso.

Per il framework, django funziona meglio. Passa attraverso il tutorial e sarai abbastanza impressionato. La documentazione oscilla. La comunità, devi vedere di persona, per sapere com'è meravigliosa !!

0

Se avete lavorato con Eclipse prima che si possa dare una prova Pydev

1

NOTA: ho inserito un sacco di link a quadri, progetti e che cosa-no, ma come un nuovo utente che si è limitato a 1 collegamento per risposta. Se qualcun altro con sufficiente reputazione da modificare vuole/può modificarli in questa risposta invece delle note a piè di pagina, sarei grato.

Ci sono alcuni IDE Python come Wing IDE [1], credo che alcune persone utilizzino Eclipse [2] anche con un plugin python [3]. Un sacco di persone nel canale #python di FreeNode sembrano preferire vim, emacs, nano e editor di testo simili a favore degli IDE. Il mio editor preferito è Vim, ma se per lo più hai sviluppato .NET su Windows, presumibilmente con i soliti IDE di Visual X, vim ed emac causeranno probabilmente uno shock culturale e staresti meglio usando un IDE.

Quasi tutti i framework web Python * supportano lo standard WSGI [4], la maggior parte dei server Web di grandi dimensioni ha una sorta di plug-in per supportare WSGI, gli altri supportano WSGI tramite cgi veloce o cgi semplice.

I framework Zope [5] e Django [6] hanno i propri ORM, di altri ORM i due più noti sembrano essere l'alchimia SQL [7] e l'oggetto SQL [8].Ho solo esperienza con il primo, ma entrambi supportano tutte le possibili scelte del database, incluso SQLite che è installato insieme a Python e quindi perfettamente adatto per testare e sperimentare senza inquinare il tuo ambiente .NET con server web e server di database di terze parti.

I framework unittest [9] e pyunit [10] incorporati sembrano essere le soluzioni preferite per i test di unità, ma non ho molta esperienza con questi.

bpython [11] e ipython [12] offrono shell python interattive avanzate che possono aiutare molto ad accelerare e testare piccoli bit di codice e quindi vale la pena guardare dentro.

Per quanto riguarda l'elenco dei framework web ben noti e spesso utilizzati, esaminare i seguenti quadri **:

  • ritorto [13] è un framework di rete generica, che supporta quasi ogni singolo protocollo sotto il sole .
  • I piloni [14] sono una struttura leggera che mira ad essere il più flessibile possibile e ad abbandonare tutte le scelte su cosa ORM, linguaggio dei modelli e cosa non lo fa.
  • CherryPy [15] prova a fornire un'interfaccia per esporre oggetti Python al web.
  • Django [6] tenta di essere una soluzione all-in-one, sistema di template integrato, ORM, pagine di amministrazione e internazionalizzazione. Mentre i quadri precedenti hanno più collegamenti fai-da-te insieme, varie strutture lavorano con loro.
  • Zope [5] è pensato per essere adatto a grandi applicazioni aziendali, non ho sentito altro che buone cose a riguardo, ma il consenso sembra essere che per i più piccoli si sta probabilmente meglio con uno dei quadri più semplici e più piccoli .
  • TurboGears [16] è il framework che conosco di meno, ma sembra essere principalmente la competizione per Django.

Questo è tutto ciò a cui riesco a pensare in questo momento, modifico e aggiungo cose se riesco a pensarci. Spero che questo ti aiuti un po 'nel meraviglioso mondo di Python.


* - La principale eccezione sarebbe mod_python di Apache, che si dovrebbe evitare proprio per questo motivo, utilizzare mod_wsgi invece.
** - Parola di avvertimento, non ho usato personalmente questi framework, questa è solo una brevissima impressione che ho ottenuto parlando con altre persone di ogni framework, potrebbe essere selvaggiamente inaccurata. (Se qualcuno ha delle correzioni, commenta e cercherò di modificare e correggere questa risposta).

(http: // manca dato che sono riconosciuti come i collegamenti in altro modo)
[1] www.wingware.com/~~V~~3rd
[2] www.eclipse.org/~~V~~3rd
[3] PyDev. sourceforge.net/
[4] wsgi.org/wsgi/
[5] www.zope.org/
[6] www.djangoproject.com/
[7] www.sqlalchemy.org/
[8] www.sqlobject.org/
[9] docs.python.org/library/unittest.html
[10] pyunit.sourceforge.net/pyunit.html
[11] www.bpython-interpreter.org/~~V~~3rd
[12] ipython.scipy.org/~~V~~3rd
[13] twistedmatrix.com/trac/
[14] pylonshq.com/~~V~~3rd
[15] www.cherrypy.org/~~V~~3rd
[16] turbogears.org/~~V~~3rd

Problemi correlati