¿Cómo puedo eliminar python 2.7 después de instalar python 3.3?


20

He instalado con éxito Python 3.3 en Ubuntu 12.10. Como no necesito varias versiones de python, quiero eliminar el python 2.7 existente. Cuando trato de hacer eso, usando

sudo apt-get remove python2.7

Ubuntu me advierte que hay toneladas de componentes dependientes del sistema que también se eliminarán. Se ve realmente aterrador.

Entonces, ¿hay alguna manera de eliminar Python 2.7 sin eliminar los componentes dependientes del sistema, o puedo indicar a esos dependientes que usen Python 3.3?


2
Yo no lo recomendaría. La versión de Python no es tan compatible, por lo que los scripts más antiguos podrían tener problemas si no tiene la versión correcta.
tikend 01 de

tienes razón, python3.3 ha declarado que es incompatible con python 2.7. Entonces, mejor me quedo con él. ¡Gracias por el consejo!
Phoenix Bai

Respuestas:


23

No puedes

Desde el wiki de Ubuntu / Python :

Planes a más largo plazo (por ejemplo, 14.04)

Mueva Python 2 al universo, porte todas las aplicaciones de Python en main a Python 3. Nunca eliminaremos completamente Python 2.7, pero dado que nunca habrá un Python 2.8, y Python 2.7 tendrá casi 4 años en el momento de En la versión 14.04 LTS, es hora de relegar Python 2 al universo.

Esto significa que muchos paquetes base tienen dependencias difíciles en 2.7 y todavía llevará mucho tiempo migrar las cosas. Tenga en cuenta que Python 3 tiene numerosos cambios incompatibles con versiones anteriores: no es una actualización de paquete regular.

Si realmente quiere deshacerse de Python 2.7, tendrá que esperar a la versión 14.04, pero no hay garantía.


3
Son las 16.04, ahora.
muru

Son las 18.04, ahora.
Francesco Pasa

Son 19.04 fu #! Y ahora
Genarito

5

No puedes, y realmente no quieres.

Python cambió drásticamente entre 2.7 y 3.0, y rompió la compatibilidad con versiones anteriores. Las secuencias de comandos de Python que se escribieron para 2.7, que se utilizan para admitir una gran cantidad de la infraestructura del sistema, no necesariamente funcionarán correctamente con Python 3.x. Esos scripts deben actualizarse para funcionar con la nueva versión, y hasta que eso suceda, deberá mantener Python 2.7.

Esta es la razón por la que nota una gran cantidad de dependencias en el antiguo Python: el sistema depende de ello. Además, no hay nada malo en tener ambas versiones de Python instaladas en el mismo sistema. Y es posible que en el futuro se encuentre con aplicaciones que todavía usan Python 2.7, por lo que mantenerlo es una buena idea.


3

Vine aquí en 2019 porque desarrollo en Python3 por defecto y llegué a la misma conclusión que OP después de ver lo que se eliminaría después de ejecutar apt purge python

Como lo que realmente quería era llamar a Python3 con solo python, corrí

sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3 /usr/bin/python

De esta manera, si todavía se necesita Python2.7, se puede python2.7invocar explícitamente mientras que simplemente se pythonllamará por defecto a Python3 debido al enlace simbólico.

No tengo ningún script de nivel bash que llame a python2.7, por pythonlo que este cambio no sería perjudicial, mientras que otros sistemas necesitarían que sus scripts se ajustaran en consecuencia si lo hicieran.

La principal barrera para una distribución que cambia el comando python de python2 a python3 no es la ruptura dentro de la distribución, sino la ruptura de los scripts privados de terceros desarrollados por sysadmins y otros usuarios.

- El comando "python" en sistemas tipo Unix

Esta respuesta no es una respuesta directa a OP, pero como alguien que tenía una pregunta similar, esta es la funcionalidad que estaba buscando cuando estaba pensando en eliminar 2.7. En lugar de eliminar, solo priorice cuál puede usar python.


1
Me parece una mala idea. Cualquier script antiguo hecho para Python 2 llamará /usr/bin/python, mientras que casi todos los script hechos para Python 3 estarán al tanto del cambio y llamarán python3en este momento. Dejar que pythonapunte python2.7es menos probable que rompa cosas.
vidarlo

Diría que depende del entorno, como dije, no hago scripts que requieran python2 y funcionen en 3, mientras que si hiciera un cambio como este en una de nuestras estaciones en el trabajo que ejecuta scripts automáticos, sería muy perjudicial .
saniboy

¿Hay procesos específicos del sistema que podría enumerar esa llamada / usr / bin / python? Siempre estoy abierto a cambiar de opinión cuando se me presenta información nueva
saniboy

Encuentro bastantes en 18.04. grep -r "/usr/bin/python" /usr/bin/debería darle una breve descripción. Probablemente no deshabilitará su sistema, pero puede hacer que algunas cosas no funcionen. Por ejemplo solaar.
vidarlo

1
En el sistema que verifiqué, hay 39 que no hacen una referencia explícita a python3 o python2. Todos esos son probablemente python2. Por supuesto, esto depende de lo que haya instalado, pero no veo gran razón para hacer esto tampoco ...
vidarlo
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.