Documentation for a newer release is available. View Latest

Python

Millora del rendiment de Python

Depenent de la càrrega de treball, s’observa ara una millora del rendiment de fins al 27% en el programari basat en Python. El rendiment millorat s’aconsegueix compilant l’intèrpret de Python amb -fno-semantic-interposition. Com que ara no hi ha interposició semàntica, les cerques de símbols interns de libpython a la biblioteca libpython són directes i ràpides.

Com a conseqüència, si els usuaris de Fedora necessiten utilitzar LD_PRELOAD per sobreescriure símbols a libpython, la manera recomanada és crear una compilació personalitzada de Python sense -fno-semantic-interposition. No obstant això, encara és possible utilitzar LD_PRELOAD per sobreescriure símbols en altres biblioteques (per exemple, a glibc).

S’ha eliminat Python 2

L’upstream de Python va deixar de donar suport a Python 2 l'1 de gener de 2020. Per aquest motiu, Fedora 32 elimina els paquets de Python 2.

Els següents paquets ja no estan disponibles:

  • El paquet python2 i tots els seus subpaquets.

  • Tots els paquets que necessiten Python 2 per executar-se.

  • Tots els paquets que necessiten Python 2 per compilar-se.

Fedora 32 encara proporciona un paquet python27 heretat. Aquest paquet està pensat per a desenvolupadors que necessiten donar suport a Python 2 i per a usuaris que necessiten utilitzar programari que depèn de Python 2.

El paquet python27 té diverses limitacions en comparació amb el paquet python2 original:

  • El paquet no té subpaquets. Tot el contingut s’emmagatzema en un sol paquet.

  • El paquet no proporciona cap compilació de depuració, que anteriorment estava disponible com a python2-debug.

  • El paquet no proporciona el binari /usr/bin/python.

  • S’eliminen els Provides especials de compatibilitat enrere (aquest paquet no està pensat per dependre’n).

Suport discontinuat per a Nose

El suport per a Nose ara està obsolet. Tanmateix, per ara, el paquet python3-nose continua estant disponible als repositoris de Fedora. Encara no s’ha fixat cap versió específica per eliminar el paquet python3-nose.

Es recomana als usuaris i empaquetadors de paquets dependents que canviïn a python3-pytest o python3-nose2.

Notes sobre la migració de paquets pip instal·lats per l’usuari

Quan actualitzeu de Fedora 30 o 31 a Fedora 32, la versió principal de l’intèrpret de Python canvia de 3.7 a 3.8. Si teniu paquets Python instal·lats mitjançant pip, heu de completar el procediment següent per migrar-los a la nova versió:

  1. Instal·leu la versió de Python principal anterior:

    sudo dnf install python3.7
  2. Obteniu pip per a la versió de Python principal anterior:

    python3.7 -m ensurepip --user
  3. Observeu els paquets instal·lats:

    python3.7 -m pip list
  4. Desa la llista amb versions específiques:

    python3.7 -m pip freeze > installed.txt
  5. Instal·leu els mateixos paquets per a la versió ara predeterminada:

    python3 -m pip install --user -r installed.txt
  6. Desinstal·leu els paquets instal·lats per l’usuari per a 3.7; això garanteix l’eliminació adequada dels fitxers a ~/.local/bin:

    python3.7 -m pip uninstall $(python3.7 -m pip list --user | cut -d" " -f1)
  7. Opcionalment, netegeu l’estructura de directoris ara buida:

    rm -rf ~/.local/lib/python3.7/
  8. Opcionalment, elimineu la versió de Python innecessària:

    sudo dnf remove python3.7

A més, si teniu paquets pip instal·lats utilitzant sudo, executeu les ordres següents abans d’executar el pas final anterior que elimina `python3.7`, o instal·leu-lo de nou temporalment:

  1. Obteniu pip per a la versió de Python principal anterior per a root:

    sudo python3.7 -m ensurepip
  2. Observeu els paquets instal·lats al sistema:

    sudo python3.7 -m pip list
  3. Desinstal·leu els paquets instal·lats per a 3.7; això garanteix l’eliminació adequada dels fitxers a /usr/local/bin:

    sudo python3.7 -m pip uninstall $(python3.7 -m pip list | cut -d" " -f1)
  4. Opcionalment, netegeu l’estructura de directoris ara buida:

    sudo rm -rf /usr/local/lib*/python3.7/

Si heu seguit el primer procediment, els paquets ja estan instal·lats per al vostre compte d’usuari, que és l’opció preferida. Eviteu utilitzar sudo pip en el futur; aquestes instruccions només tenen la intenció de recuperar usuaris que ja han utilitzat sudo pip en el passat.