Come faccio a testare il mio pacchetto python (per la distribuzione) per diverse versioni di python?

-1

Ho creato una piccola biblioteca / applicazione che intendo distribuire. Comunque voglio scoprire quali versioni di Python possono gestire il mio script? Dato che ci sono molte versioni minori e micro e anche due versioni principali, come faccio a fare questo?

Ho pensato di usare docker per fare questo, ma non sono sicuro che sia il modo corretto di fare le cose.

Poi ho pensato di utilizzare ambienti virtuali , ma ho smesso di temere che a causa di così tante versioni Python, ogni errore che faccio finirebbe per rovinare l'installazione del mio sistema.

In generale come fanno gli altri sviluppatori a scoprire quali versioni di Python supportano i loro pacchetti?

    
posta jar 25.11.2018 - 11:35
fonte

1 risposta

2

Le versioni di Python sono abbastanza compatibili, quindi non devi testare ogni versione minore. Invece:

  • Prova la versione minima che stai per supportare, ad es. CPython 3.5.
  • Prova l'ultima versione, ad es. CPython 3.7.
  • Forse, prova un'altra implementazione Python come PyPy 3.7.
  • Se supporti Python 2.7, provalo separatamente, ma nota che il 2.7 raggiungerà il suo EOL nel 2020, quindi non ha molto senso che un nuovo progetto lo supporti.

La versione minima che stai per supportare è una decisione che devi fare - non solo vedere in quale versione il tuo codice si è verificato. Ogni nuova versione migliora la lingua (ad esempio con nuove funzionalità come annotazioni di tipo, funzioni asincrone, stringhe di f, dit ordinati, ...) e migliora la libreria standard. Prenditi un momento per considerare quale sia il livello minimo che sosterrai. In particolare, provare a scrivere codice che sia valido sia Python 2.7 che 3.x può essere molto difficile se si considerano nuove caratteristiche di sintassi o i diversi significati di str (rispetto a bytes rispetto a unicode ).

Per un progetto open source, è possibile utilizzare facilmente servizi CI basati su cloud per fare ciò: un processo di compilazione per ciascuna versione di Python testata.

Per i test locali, personalmente cambio manualmente tra le versioni 2.7 e 3.6 di Python fornite dal mio sistema operativo, usando una virtualizzazione per ognuno dei pacchetti appropriati. Altre persone usano Tox per eseguire test su più versioni, il che aiuta a gestire i virtualenv automaticamente.

I test basati su Docker richiedono un po 'più di configurazione, ma sono ancora relativamente facili da fare. In particolare, facilitano il test su diverse versioni di Python senza doverle installare sul tuo sistema operativo principale. Nella mia esperienza, preferisco avere la mia configurazione di sviluppo principale al di fuori di Docker in modo da poter colpire la parte "build" dal ciclo edit-build-test. La finestra mobile potrebbe essere appropriata per i test CI o se il software ha delle dipendenze difficili da installare.

    
risposta data 25.11.2018 - 12:35
fonte

Leggi altre domande sui tag