Python
Verbeterde prestaties van Python
Afhankelijk van de werklast worden nu prestatieverbeteringen tot 27%
waargenomen in op Python gebaseerde software. De verbeterde prestatie wordt
bereikt door de Python-interpreter te bouwen met
-fno-semantic-interposition
. Omdat er nu geen semantische interpositie
is, zijn de interne symboolzoekopdrachten van libpython
naar` libpython`
bibliotheek direct en sneller.
Als gevolg hiervan, als Fedora gebruikers LD_PRELOAD
moeten gebruiken om
symbolen in` libpython` te overschrijven, is de aanbevolen manier om een
aangepaste Python-build te bouwen zonder -fno-semantic-interposition
. Het
is echter nog steeds mogelijk om LD_PRELOAD
te gebruiken om symbolen in
andere bibliotheken te overschrijven (bijvoorbeeld in glibc).
Python 2 is verwijderd
De Python upstream stopte met het ondersteunen van Python 2 op 1 januari 2020. Om deze reden verwijdert Fedora 32 Python 2 pakketten.
De volgende pakketten zijn niet meer beschikbaar:
-
Het
python2
pakket en alle subpakketten. -
Alle pakketten die Python 2 nodig hebben om te worden uitgevoerd.
-
Alle pakketten die Python 2 nodig hebben te worden gebouwd.
Fedora 32 biedt nog steeds een verouderd python27
pakket aan. Dit pakket
is bedoeld voor ontwikkelaars die Python 2 moeten ondersteunen en voor
gebruikers die software gebruiken die afhangt van Python 2.
Het python27
pakket heeft verscheidene beperkingen vergeleken met het
originele python2
pakkey:
-
Het pakket heeft geen subpakketten. Alle inhoud is opgeslagen in het enkele pakket.
-
Het pakket biedt geen debug bouw aan, welke vroeger beschikbaar was als
python2-debug
. -
Het pakket biedt het binaire programma
/usr/bin/python
niet aan. -
Alle speciale backwards-compatibele Provides zijn verwijderd (dit pakket is niet bedoeld om afhankelijk van te worden).
Verouderde ondersteuning voor Nose
Ondersteuning voor Nose is nu beëindigd. Maar voorlopig blijft het
python3-nose
pakket beschikbaar in de Fedora repositories. Er is nog niet
op een specifieke release gericht voor het verwijderen van het
python3-nose
pakket.
Gebruikers en verpakkers van afhankelijke pakketten worden aangemoedigd om
over te gaan naar python3-pytest
of python3-nose2
.
Opmerkingen over het migreren van door de gebruiker geïnstalleerde pip-pakketten
Wanneer je upgrade van Fedora 30 of 31 naar Fedora 32, verandert de
belangrijkste Python interpreter versie van 3.7 naar 3.8. Als je
Python-pakketten hebt geïnstalleerd met pip
, moet je de volgende procedure
volgen om ze naar de nieuwe versie te migreren:
-
Installeer de voorheen belangrijkste Python-versie:
sudo dnf install python3.7
-
Haal
pip
op voor de voorheen belangrijkste Python-versie:python3.7 -m ensurepip --user
-
Let op de geïnstalleerde pakketten:
python3.7 -m pip list
-
Bewaar de lijst met specifieke versies:
python3.7 -m pip freeze > installed.txt
-
Installeer dezelfde pakketten voor de nu standaardversie:
python3 -m pip install --user -r installed.txt
-
Verwijder door de gebruiker geïnstalleerde pakketten voor 3.7; dit zorgt voor een correcte verwijdering van bestanden in
~/.local/bin
:python3.7 -m pip uninstall $(python3.7 -m pip list --user | cut -d" " -f1)
-
Ruim optioneel de nu lege mapstructuur op:
rm -rf ~/.local/lib/python3.7/
-
Verwijder optioneel de onnodige Python-versie:
sudo dnf remove python3.7
Bovendien, als je pip
pakketten geïnstalleerd hebt met sudo
, voer dan de
volgende commando’s uit voordat je de laatste stap hierboven uitvoert die
python3.7
verwijdert, of installeer het tijdelijk opnieuw:
-
Haal
pip
voor de voorheen belangrijkste Python-versie voorroot
:sudo python3.7 -m ensurepip
-
Let op de door het systeem geïnstalleerde pakketten:
sudo python3.7 -m pip list
-
Verwijder geïnstalleerde pakketten voor 3.7; dit zorgt voor een correcte verwijdering van bestanden in
/usr/local/bin
:sudo python3.7 -m pip uninstall $(python3.7 -m pip list | cut -d" " -f1)
-
Maak nu optioneel de lege mapstructuur schoon:
sudo rm -rf /usr/local/lib*/python3.7/
Als je de eerste procedure heeft gevolgd, zijn de pakketten al geïnstalleerd
voor jouw gebruikersaccount, wat de voorkeursoptie is. Vermijd het gebruik
van |