Python
Miglioramento delle prestazioni di Python
A seconda del carico di lavoro, si osserva ora un miglioramento delle prestazioni fino al 27% nei software basati su Python. Questo incremento è stato ottenuto compilando l’interprete Python con l’opzione`-fno-semantic-interposition`. Poiché l’interposizione semantica non è più attiva, la ricerca dei simboli interni all’interno della libreria libpython avviene in modo diretto e più veloce.
Di conseguenza, se gli utenti Fedora hanno la necessità di utilizzare LD_PRELOAD per sovrascrivere i simboli in libpython, il metodo raccomandato è quello di creare una build personalizzata di Python senza l’opzione -fno-semantic-interposition. Tuttavia, è ancora possibile utilizzare LD_PRELOAD per sovrascrivere i simboli in altre librerie (ad esempio in glibc).
Python 2 è stato rimosso
Il team di sviluppo di Python ha rimosso il supporto per Python 2 il 1° gennaio 2020. Per questo motivo, Fedora 32 rimuove i pacchetti Python 2.
I seguenti pacchetti non sono più disponibili:
-
Il pacchetto `python2`e tutti i suoi sottopacchetti.
-
Tutti i pacchetti che richiedono Python 2 per essere eseguiti.
-
Tutti i pacchetti che richiedono Python 2 per la compilazione.
Fedora 32 fornisce ancora un pacchetto legacy python27. Questo pacchetto è destinato agli sviluppatori che devono supportare Python 2 e agli utenti che hanno necessità di utilizzare software dipendente da Python 2.
Il pacchetto python27`presenta diverse limitazioni rispetto al pacchetto originale `python2:
-
Il pacchetto non ha sottopacchetti. Tutto il contenuto è memorizzato nel pacchetto singolo.
-
Il pacchetto non fornisce una build di debug, precedentemente disponibile come
python2-debug. -
Il pacchetto non fornisce il file binario /usr/bin/python.
-
Tutti i Provides speciali per la compatibilità all’indietro sono stati rimossi (questo pacchetto non è destinato a essere utilizzato come dipendenza).
Supporto deprecato per Nose
Il supporto per Nose è ora deprecato. Tuttavia, per il momento, il pacchetto python3-nose continua a essere disponibile nei repository di Fedora. Non è ancora stata stabilita una versione specifica per la rimozione definitiva del pacchetto python3-nose.
Gli utenti e i manutentori dei pacchetti dipendenti sono incoraggiati a passare a python3-pytest-pytest o python3-nose2-nose2.
Ecco alcune note sulla migrazione dei pacchetti pip installati dall’utente (solitamente in ~/.local/lib/python3.x/site-packages) durante l’avanzamento di versione di Fedora:
Quando si esegue l’aggiornamento da Fedora 30 o 31 a Fedora 32, la versione dell’interprete Python principale passa dalla 3.7 alla 3.8. Se sono stati installati pacchetti Python tramite pip, è necessario completare la seguente procedura per migrarli alla nuova versione:
-
Installare la precedente versione principale di Python:
FreeIPA utilizza ora Python 3. -
Ottenere `pip`per la versione di Python precedentemente principale:
python3.7 -m ensurepip --user -
Osserva i pacchetti installati:
python3.7 -m pip list -
Salva l’elenco con le versioni specifiche:
python3.7 -m pip freeze > installed.txt -
Installa i medesimi pacchetti per la versione ora predefinita:
python3 -m pip install --user -r installed.txt -
Disinstalla i pacchetti installati dall’utente per la versione 3.7; questo garantisce la corretta rimozione dei file in ~/.local/bin:
python3.7 -m pip uninstall $(python3.7 -m pip list --user | cut -d" " -f1) -
Opzionalmente, ripulisci la struttura delle directory ora vuota:
rm -rf ~/.local/lib/python3.7/ -
Opzionalmente, rimuovi la versione di Python non necessaria:
"Ruomuovi python3.7 utilizzando dnf con privilegi di amministratore."
"Inoltre, se hai dei pacchetti pip installati tramite sudo, esegui i seguenti comandi prima di procedere con l’ultimo passaggio descritto sopra per la rimozione di python3.7, oppure reinstallalo temporaneamente:"
-
Ottieni pip per la versione di Python precedentemente principale per l’utente root:
sudo python3.7 -m ensurepip -
Osserva i pacchetti installati nel sistema:
sudo python3.7 -m pip list -
Disinstalla i pacchetti installati per la versione 3.7; questo garantisce la corretta rimozione dei file in /usr/local/bin:
sudo python3.7 -m pip uninstall $(python3.7 -m pip list | cut -d" " -f1) -
Opzionalmente, pulire la struttura delle directory ora vuota:
sudo rm -rf /usr/local/lib*/python3.7/
|
Se hai seguito la prima procedura, i pacchetti sono già installati per il tuo account utente, che è l’opzione preferibile. In futuro, evita di usare sudo pip; queste istruzioni hanno il solo scopo di ripristinare i sistemi degli utenti che hanno utilizzato sudo pip in passato. |
Want to help? Learn how to contribute to Fedora Docs ›