Documentation for a newer release is available. View Latest

Python

Rendimiento mejorado de Python

Dependiendo de la carga de trabajo, se observa ahora una mejora del rendimiento de hasta un 27% en el software basado en Python. La mejora del rendimiento se logra construyendo el interprete de Python con -fno-semantic-interposition. Porque ahora no hay interposición semántica, las búsquedas de símbolos internos de libpython a la librería libpython son más directas y rápidas.

Como consecuencia, si los usuarios de Fedora necesitan usar LD_PRELOAD para anular símbolos en libpython, la forma recomendada es crear una compilación personalizada de Python sin -fno-semantic-interposition. Sin embargo es todavía posible usar LD_PRELOAD para anular símbolos en otras librerías (por ejemplo en glibc).

Se ha quitado Python 2

Python paró de soportar Python 2 el 1 de Enero de 2020. Por esta razón, Fedora 32 quita los paquetes Python.

Los siguientes paquetes ya no están disponibles:

  • El paquete python2 y todos sus subpaquetes.

  • Todos los paquetes que necesita para que corra Python 2.

  • Todos los paquetes que necesita para construir Python 2.

Fedora 32 proporciona todavía un paquete de legado python27. Este paquete está dirigido a los desarrolladores que necesiten soporte para Python 2 y para los usuarios que necesiten usar software que dependa de Python 2.

El paquete python27 tiene variar limitaciones en comparación con el paquete python2 original:

  • El paquete no tiene subpaquetes. Todo el contenido está almacenado en un único paquete.

  • El paquete no proporciona ninguna compilación para depurar, lo cual fue anteriormente disponible como python2-debug.

  • El paquete no proporciona el binario de /usr/bin/python.

  • Cualquier compatibilidad sobre Proporciona especial hacia atrás es quitada (este paquete no debe ser dependiente).

Mantenimiento obsoleto por narices

Mantenimiento por nariz ahora está obsoleto. Sin embargo por ahora, el paquete python3-nose continua para estar disponible en repositorios Fedora. No lo libera específico aún apuntado para retirar el paquete python3-nose.

Usuarios y paquetes de paquetes dependientes están alentados para cambiar a python3-pytest o python3-nese2.

Notas en migrar paquetes pip de usuario-instalado

Cuando modernice desde Fedora 30 o 31 a Fedora 32, el intérprete principal de Python cambia la versión desde 3.7 a 3.8. Si tiene cualquier paquete de Python instalado usando pip, debe completar el siguiente procedimiento para migrarlo a la versión nueva:

  1. Instale la versión principal de Python anterior:

    sudo dnf install python3.7
    bash
  2. Obtenga pip para la versión Python principal anterior:

    python3.7 -m ensurepip --user
    bash
  3. Observe los paquetes instalados:

    python3.7 -m pip list
    bash
  4. Guarde el listado con versiones específicas:

    python3.7 -m pip freeze > installed.txt
    bash
  5. Ahora instale el mismo paquete para la versión por defecto:

    python3 -m pip install --user -r installed.txt
    bash
  6. Desinstala paquetes instalados por el usuario para 3.7; esto asegura propia retirada de archivos en ~/.local/bin:

    python3.7 -m pip uninstall $(python3.7 -m pip list --user | cut -d" " -f1)
    bash
  7. Opcionalmente, vacíe la estructura del directorio vacío ahora:

    rm -rf ~/.local/lib/python3.7/
    bash
  8. Opcionalmente, quite la versión de Python no necesaria:

    sudo dnf remove python3.7
    bash

Adicionalmente, tiene cualquier paquete pip instalado utilizando sudo, ejecute los comandos siguientes antes del paso final sobre el cual retira `python3.7`_. o instálelo de nuevo temporalmente:

  1. Obtenga pip desde la versión Python principal previamente para root:

    sudo python3.7 -m ensurepip
    bash
  2. Observe los paquetes instalados del sistema:

    sudo python3.7 -m pip list
    bash
  3. Desinstale los paquetes instalados para 3.7; esto asegura la desinstalación apropiada de los archivos en /usr/local/bin:

    sudo python3.7 -m pip uninstall $(python3.7 -m pip list | cut -d" " -f1)
    bash
  4. Opcionalmente, vacía ahora la estructura del directorio vacío:

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

Si ha seguido el primer procedimiento, los paquetes ya están instalados para su cuenta de usuario, lo cual es la opción preferida. Evite utilizar sudo pip en el futuro; estas instrucciones solamente están intencionadas para recuperar usuarios quienes ya utilizaron sudo pip en el pasado.