Migrazione da Python 2 a 3 [chiuso]

1

È facile trovare domande che chiedono se si dovrebbe iniziare con python 2 o python 3, ed è un consenso che python 2 è la strada da percorrere poiché ha più librerie e quindi è meglio supportato.

Python 3 è stato lanciato di nuovo nel 2008 e questa domanda ha già affrontato una migrazione. Poiché era troppo presto, la soluzione era aspettare.

Sono passati 5 anni e un buon numero di librerie supporta già python 3. Al momento scrivo questa domanda, secondo questa pagina 244 pacchetti su pypi supportano python 3 mentre 156 no. Tra i primi 30 pacchetti più scaricati, 24 supportano python 3

Seguendo questo mi sento abbastanza sicuro per iniziare la migrazione da Python 2 a 3 e anche evitare di dire alla gente di iniziare su python 2

Le mie ragioni spiegate, la domanda è:

Quali preoccupazioni dovrei avere durante la migrazione da Python 2 a 3?

Non solo la sintassi del codice e le sostituzioni, in quanto è facile trovare uno strumento di conversione per eseguire l'80% del lavoro, ma problemi generali come:

  • Modifiche al meccanismo degli ambienti virtuali?
  • Differenze di costruzione, imballaggio e distribuzione
  • Avrò solo cPython? (Sembra che Jython abbia una lunga strada da percorrere per raggiungere python 3)
  • Programmazione multi threading / elaborazione. Sempre un argomento delicato
  • Testing. Qualche modifica?
  • Quali sono le cose comuni che posso ancora fare come in Python 2 ma dovrei fermarmi e iniziare a farlo in un altro modo? Sento che uno strumento di sostituzione del codice cambierà il codice per renderlo semplicemente "eseguibile", ma non userà l'opzione corretta o migliore se l'opzione stessa comporta grandi cambiamenti

ps: questa domanda è stata posta sullo stack overflow, ma è stata chiusa come troppo ampia. Ad ogni modo, ho sentito che il posto giusto è qui

    
posta Bruno Polaco 08.07.2013 - 05:13
fonte

1 risposta

2

Dipende in gran parte dal progetto.

Scegli la versione con cui funzioneranno le librerie necessarie.

Quasi tutto funzionerà su Python 2.x, ma se trovi che le tue dipendenze sono disponibili anche per Python 3.x, usa 3.x.

Come per la migrazione, questa pagina copre tutte le differenze (non c'è sembra che ci sia qualche cambiamento sul fronte del multithreading / elaborazione rispetto a 2.x, ma potrei sbagliarmi).

Virtualenv funziona con Python 3 dalla 1.6, con correzioni per ogni nuova versione di Python nelle versioni successive.

Per quanto riguarda le implementazioni Python alternative, ciò dipende dall'implementazione stessa, ma la maggior parte di esse è ancora 2.x solo per il momento.

    
risposta data 08.07.2013 - 07:44
fonte

Leggi altre domande sui tag