Cómo hacer que `python` sea un alias de` python3` en todo el sistema en Debian

Sep 17 2020

Las últimas actualizaciones de mi sistema de prueba Debian eliminaron la versión 2 de Python, y solo tengo instalado Python 3, con python3. Ya no hay ningún comando nombrado python. Esto hace que varios scripts fallen, incluidos los scripts compatibles con Python 3.

Me interesaría saber cuál es la forma correcta de configurar globalmente pythoncomo un alias para python3.

Una solución sucia sería hacer algo como esto manualmente sudo ln -s /usr/bin/python{3,}, pero me preocupa que esto no sea robusto para futuras actualizaciones de APT (o si reinstala Python 2 más adelante). Otra opción es establecer un alias, pero luego solo funcionaría para mi usuario, no para todo el sistema.

También observo que en Ubuntu hay un paquete python-is-python3que hace precisamente esto, pero no existe tal paquete en Debian.

Respuestas

3 StephenKitt Sep 17 2020 at 19:59

Si desea seguir la regla de que todo lo que /usrcontiene /usr/localdebe provenir de un paquete, en realidad descargaría el python-is-python3paquete e instalaría eso. Solo envía el /usr/bin/pythonenlace simbólico y la documentación requerida, y es poco probable que sus relaciones entre paquetes causen problemas en el futuro.

Un alias no ayudará con los shebangs de sus scripts, y dado que los paquetes de Python no usan alternativas, crear su propia alternativa ( update-alternativesetc.) no sería una solución sólida.

Si sus scripts lo utilizan /usr/bin/env python, puede agregar manualmente un enlace en su /usr/local/binlugar.

Independientemente de lo que decida hacer, de ahora en adelante, los paquetes dependientes de Python en Debian deben usar explícitamente python2o python3en sus shebangs, por lo que no encontrará problemas causados ​​por paquetes de los repositorios oficiales (en Debian 11 y posteriores, excluyendo inestable y experimental por ahora, ya que todavía tienen paquetes de Python antiguos que aún no se han limpiado).

2 a3nm Nov 02 2020 at 22:17

Parece que Debian está a la venta Python-es-python3 sí mismos (en sid y pruebas partir de este escrito), por lo que la premisa de la pregunta ya no ejerce y que sólo puede: sudo apt update && sudo apt install python-is-python3.