Dovremmo usare Python 2.6 o 2.7 o 3.x? [chiuso]


25

La versione di Python che sto usando è 2.6 , e ci sono 2.7 e 3.x. Di solito uso Python per qualche programma / frammento banale. Mi rendo conto che ci sono alcune importanti differenze tra 2.xe 3.x. Mi piacerebbe davvero sapere, se ho intenzione di realizzare un progetto più grande con Python, quale versione di Python dovrei usare?

Devo aggiornare a 2.7, o andare a 3.xo rimanere con 2.6?

La decisione dovrebbe essere basata su questi termini:

  1. Numero di utenti in Internet come comunità. Più utenti significano più pacchetti open source e aiutano da loro.

  2. Funzionalità.

  3. Supporto dal team di sviluppo ufficiale.

  4. Compatibilità per modulo / pacchetto esistente.

Grazie!


5
Qualcuno può segnalare eventuali modifiche benefiche apportate da Python 3.x?
lamwaiman1988,

1
Dici di sapere che la compatibilità con i moduli esistenti è un problema, ma non ci dici su quali moduli esistenti si basa il tuo codice. Questa domanda è praticamente senza risposta.
Wooble,

2
fuori tema; raccomandazioni E gorilla vs squalo in una domanda Eeeek !!!

3
Questa domanda e le sue risposte saranno utili solo per una piccola finestra di tempo. Ciò che ha senso ora potrebbe non avere molto senso tra un anno poiché 3.x diventa più maturo.
Bryan Oakley,

Notando che (a) la domanda è ancora pertinente nel 2014 (ad es. RobotFramework non funziona con Python 3) e (b) la chiusura di questa domanda mantiene questa pagina obsoleta perché - anche se risulta alta nei risultati di ricerca di Google - nuove risposte non può essere pubblicato.
Bob Stein,

Risposte:


27

Suggerirei Python 2.7 da solo. È l'ultima versione della serie Python 2.x. La maggior parte dei moduli Python sono fatti per funzionare con Python 2.x. C'è un movimento per provare a passare a Python 3, ma uno qualsiasi dei moduli di Python 3 è scritto sia per 2 che per 3. Ricorda di non usare le vecchie funzionalità che non sono disponibili in Python 3, in modo da poter solo 2to3 fallo funzionare su Python 3.

Se vai con Python 3, sei uno dei primi ad adottare e probabilmente dovrai dire agli altri di scaricare Python 3 (molti computer avranno solo Python 2). D'altra parte, le nuove funzionalità arriveranno solo su Python 3. Python 2 è permanentemente in manutenzione. Quindi non consiglierei di usare ancora Python 2 tra 10 anni.

Se vuoi tenere d'occhio i pacchetti Python e la loro compatibilità con Python 3, puoi tenere d'occhio questo sito: http://python3wos.appspot.com/


django non supporta 3.x? Quindi l'utente che ha familiarità con Django non può usare 3.x?
lamwaiman1988,

ehi normalmente quando viene rilasciata una nuova versione significa che è meglio di quella precedente. E perché Python viene rilasciato nella serie 2.xe un altro nella serie 3.x? Qual è la differenza reale in loro.
CALDO

4
Python 3 ha apportato alcune modifiche al linguaggio utili, ma non sono retrocompatibili con alcune delle funzionalità di Python 2. Quindi alcune cose sono state rimosse e alcune aggiunte (e le cose rimosse le rendono non compatibili).
jsternberg,

+1 per 2,7, il miglior rapporto di compatibilità (almeno per le librerie che uso) fino a quando 3 non sarà più diffuso
wildpeaks

@Ashinkn Le modifiche sono disponibili qui docs.python.org/3.0/whatsnew/3.0.html . La principale modifica alla rottura della compatibilità è il passaggio dall'uso di Unicode (al contrario di ASCII) come tipo di stringa predefinito. Dove le persone hanno usato le stringhe come byte [] prima c'è invece un nuovo tipo di byte usato. Inoltre, tutte le stringhe 2x definite esplicitamente come unicode devono essere modificate in stringhe regolari.
Evan Plaice,

19

La mia opinione è che dobbiamo iniziare a portare le persone su Python 3 e se ci sono librerie che non sono compatibili con Python 3, dobbiamo iniziare a fare in modo che non sia così.

Python 3 è il futuro del linguaggio, e più codice scriviamo usandolo, meglio è.


Ciò di cui abbiamo bisogno è un singolo interprete compatibile con entrambe le versioni di Python e in grado di analizzarle in modo intelligente. Cioè, detto interprete compilerebbe sia python2 che python3 nello stesso bytecode in modo che siano compatibili, rendendo possibile l'uso di python3 con una libreria python2. Se C, C ++ e Java possono farlo, allora anche Python.
Braden Best

4

Django ora "sperimentalmente" supporta Python 3.2+, come puoi vedere dai loro post qui .

Detto questo, e il fatto che Python 3.x sia il futuro del linguaggio, direi che Python 3 è il migliore ora.


2

Per ogni progetto controlla se tutte le librerie richieste per un progetto hanno già il supporto per Python 3.x quindi usa python 3.x perché è futuro e questa è l'ultima versione ufficiale stabile.

Altrimenti usa tutto ciò che devi usare per la compatibilità delle librerie.


2

Non importa se usi Python 2.7 o Python 3 Se non usi le vecchie funzionalità in Python 2.7, puoi solo 2to3 il tuo codice per farlo funzionare su Python 3.


0

Ero nella stessa barca in precedenza e questo è quello che ho trovato. Python 2.6, 2.7 e 3.2 possono essere installati fianco a fianco usando MacPorts e possono essere commutati facilmente. (Sono un utente Mac). Cerca alternative ai Macport per la tua piattaforma.


0

Fino a quando un bridge non viene sviluppato intrinsecamente in 3.x per consentire l'uso trasparente di pacchetti 2.7, una mossa è piena di pericoli perché il linguaggio è davvero tutto su ciò che è stato contribuito ad esso. Considerazioni formali e purezza sono trascurabili in confronto. È improbabile che un ponte così trasparente si verifichi per pura testardaggine e ignoranza pedante per la base di utenti.


Un ponte così trasparente è irraggiungibile. I pacchetti 2to3 e sei offrono un ampio ponte, ma sono tutt'altro che trasparenti.
Martijn Pieters,
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.