Domanda

Se dovessi avviare un progetto open source utilizzando Python, quale versione dovrei utilizzare per garantire che la stragrande maggioranza degli utenti possa utilizzarlo sul proprio sistema?

Sono il tipo di persona che passa rapidamente alla versione successiva (cosa che farò quando uscirà Python 3) ma molte persone potrebbero essere più conservatrici se la loro versione attuale sembra funzionare bene.Quale versione potrebbe raggiungere il punto giusto permettendomi comunque di godere dei miglioramenti linguistici più recenti e interessanti?

È stato utile?

Soluzione

Dato che Python è in una sorta di fase di transizione verso Python 3 con rottura della compatibilità con le versioni precedenti, non penso che sia una buona idea passare solo a Python 3.Basato sul sequenza temporale ci saranno almeno uno o due rilasci successivi della serie 2.x dopo la 2.6/3.0 in ottobre.

Oltre a non avere Python 3 disponibile sulle piattaforme di destinazione, ci vorrà del tempo prima che importanti librerie Python esterne vengano trasferite e utilizzabili su Python 3.

Quindi, come suggerisce Matthew, rimanere a 2,4/2,5 e mantenere il valore transizione pianificare Python 3 in mente è una scelta solida.

Altri suggerimenti

Da tempo non vedo un sistema con meno di 2.3 installato.Per impostazione predefinita è installato principalmente 2.4+ per la maggior parte dei sistemi operativi che utilizzo ora.2.3 è solo su una vecchia macchina Solaris.Le distribuzioni Linux tendono ad avere 2.4+, così come OS X.

IIRC, 2.4 ha molte delle funzionalità della 2.5, ma è utilizzabile solo con

from __future__ import *

Puoi utilizzare diverse versioni di Python su ciascuna macchina.

Codificando qualcosa di nuovo, non utilizzerei niente di meno di python2.5.Tu puoi fare apt-get install python2.5 in stock debian stabile.

Per Windows, non preoccuparti davvero.È molto semplice installare python2.5 msi.

Se gli utenti non possono prendersi la briga di farlo, puoi distribuire un eseguibile con py2exe (molto semplice) e creare un programma di installazione con inno setup (di nuovo semplice), quindi si comporterà come un'applicazione Windows standard e utilizzerà le proprie DLL Python , quindi non è necessario che Python sia installato.

Come ha detto Pietro:tieni presente la transizione alla versione 3.0 ma non basarti ancora su di essa.

Python 2.3 o 2.2 se puoi vivere senza i numerosi moduli che sono stati aggiunti (ad es.datetime, csv, logging, optparse, zipimport), non utilizzano SSL e sono disposti ad aggiungere boilerplate per True/False.

2.4 decoratori aggiunti.espressioni del generatore, reversed(), sorted() e i moduli sottoprocesso e decimale.Sebbene siano tutti carini, è facile scrivere codice Python senza di essi (supponendo che il tuo progetto non ne faccia un uso intenso).

2.5 aggiunto con relative importazioni, migliore supporto a 64 bit e un bel po' di velocità.Potresti vivere senza tutti questi abbastanza facilmente.

La versione 2.6 non è stata rilasciata (anche se è molto vicina), quindi, anche se potrebbe piacere agli sviluppatori, non ha la compatibilità che cerchi.

Dai un'occhiata alle note di rilascio per 2.3, 2.4, 2.5 e il prossimo 2.6 (usa http://www.python.org/download/releases/2.Y/highlights/ dove 'Y' è la versione minore).

FWIW, per SpamBayes supportiamo la versione 2.2 e successive (la versione 2.2 richiede l'installazione separata del pacchetto email).Questo non è eccessivamente faticoso, ma le aggiunte 2.3 sono abbastanza utili e 2.3 abbastanza vecchie che probabilmente lasceremo cadere 2.2 in breve tempo.

Se il progetto diventerà mainstream e verrà eseguito su Linux, il file soltanto la scelta sensata è 2.4, solo perché è una seccatura installare qualsiasi altra cosa come predefinita su Enterprise Linux.

In ogni caso, qualsiasi moderno Il sistema operativo avrà/potrà avere la versione 2.4 o successiva.

Dovresti usare Pitone 2.7, la versione principale finale di Python 2.

Python 3.x attualmente dispone di un supporto limitato per librerie di terze parti e spesso non è installato per impostazione predefinita.Quindi stai guardando la serie 2.x.

Python 2.7 è essenzialmente completamente compatibile con le versioni precedenti di 2.xs.Inoltre, può fornire avvisi di deprecazione su cose che non funzioneranno in Python 3.(In particolare, converrà mantenere i test unitari ed essere pedanti riguardo a Unicode-vs.stringhe di byte.) Gli avvisi ti costringeranno a scrivere un buon codice che il file automatizzato 2to3 lo strumento sarà in grado di tradurre in Python 3.

Guido van Rossum raccomanda ufficialmente di mantenere un'unica base di codice Python 2, e utilizzando 2to3 insieme ai test unitari per produrre versioni compatibili per Python 2 e 3.(Da quando è stato scritto PEP 3000, Python 2.6 è stato sostituito da 2.7.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top