Comment puis-je supprimer python 2.7 après avoir installé python 3.3?

20

J'ai réussi à installer python 3.3 sur Ubuntu 12.10. Comme je n'ai pas besoin de plusieurs versions de python, je souhaite supprimer le python 2.7 existant. Quand j'essaye de faire ça, en utilisant

sudo apt-get remove python2.7

Ubuntu m'avertit qu'il y a des tonnes de composants dépendants du système qui seront également supprimés. Cela semble vraiment effrayant.

Alors, existe-t-il un moyen de supprimer python 2.7 sans supprimer les composants dépendants du système, ou puis-je demander à ces personnes à charge d'utiliser python 3.3?

phoenix bai
la source
2
Je ne le recommanderais pas. Les versions de Python ne sont pas du tout compatibles, donc les anciens scripts peuvent avoir des problèmes si vous n'avez pas la bonne version.
tikend
vous avez raison, python3.3 a déclaré qu'il était incompatible avec python 2.7. Donc, je ferais mieux de le garder. Merci pour le conseil!
phoenix bai

Réponses:

23

Tu ne peux pas.

Depuis le wiki Ubuntu / Python :

Plans à plus long terme (par exemple 14.04)

Déplacez Python 2 vers l'univers, portez toutes les applications Python principales vers Python 3. Nous ne nous débarrasserons jamais complètement de Python 2.7, mais puisqu'il n'y aura jamais non plus de Python 2.8, et Python 2.7 aura presque 4 ans au moment de la version 14.04 LTS, il est temps de reléguer Python 2 à l'univers.

Cela signifie que beaucoup de packages de base ont des dépendances dures sur 2.7 et qu'il faudra encore beaucoup de temps pour faire migrer les choses. Notez que Python 3 a de nombreux changements incompatibles en amont - ce n'est pas une mise à niveau régulière du package.

Si vous voulez vraiment vous débarrasser de Python 2.7, vous devrez attendre la version 14.04, mais il n'y a aucune garantie.

gertvdijk
la source
3
Il est 16h04 maintenant.
muru
Il est 18h04 maintenant.
Francesco Pasa
Il est 19.04 fu #! &
Now
5

Vous ne pouvez pas et vous ne voulez pas vraiment.

Python a radicalement changé entre 2,7 et 3,0 et a rompu la compatibilité descendante. Les scripts Python écrits pour 2.7, qui sont utilisés pour prendre en charge une grande partie de l'infrastructure du système, ne fonctionneront pas nécessairement correctement avec Python 3.x. Ces scripts doivent être mis à jour pour fonctionner avec la nouvelle version, et jusqu'à ce que cela se produise, vous devrez conserver Python 2.7.

C'est pourquoi vous remarquez un si grand nombre de dépendances sur l'ancien Python - le système en dépend. En outre, il n'y a aucun mal à installer les deux versions de Python sur le même système. Et vous pouvez rencontrer à l'avenir des applications qui utilisent toujours Python 2.7, donc le garder est une bonne idée.

user173076
la source
3

Entré ici en 2019 parce que je développe en Python3 par défaut et suis arrivé à la même conclusion que OP après avoir vu ce qui serait supprimé après l'exécution apt purge python

Puisque ce que je voulais vraiment, c'était d'appeler Python3 avec juste python, j'ai couru

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

De cette façon, si Python2.7 est toujours nécessaire, il peut être appelé explicitement avec python2.7tout en appelant simplement pythonpar défaut à Python3 en raison du lien symbolique.

Je n'ai pas de scripts de niveau bash qui appellent python2.7, pythondonc ce changement ne serait pas perturbateur - alors que d'autres systèmes auraient besoin que leurs scripts soient ajustés en conséquence s'ils le faisaient.

Le principal obstacle à une distribution passant la commande python de python2 à python3 n'est pas la rupture au sein de la distribution, mais plutôt la rupture des scripts tiers privés développés par sysadmins et d'autres utilisateurs.

- La commande "python" sur les systèmes de type Unix

Cette réponse n'est pas une réponse directe à OP, mais en tant que personne qui avait une question similaire, c'est la fonctionnalité que je cherchais lorsque je pensais supprimer 2.7. Plutôt que de supprimer, il suffit de prioriser celui que l'on utilise python.

saniboy
la source
1
Cela me semble être une mauvaise idée. Tous les anciens scripts créés pour Python 2 seront appelés /usr/bin/python, tandis que presque tous les scripts créés pour Python 3 seront conscients du changement et seront appelés python3à l'heure actuelle. Laisser pythonpointer vers python2.7est moins susceptible de casser les choses.
vidarlo
Je dirais que cela dépend de l'environnement, comme je l'ai dit, je ne fais pas de scripts qui nécessitent python2 et fonctionne en 3 - alors que si j'effectuais un changement comme celui-ci sur l'une de nos stations au travail exécutant des scripts automatisés, ce serait très perturbateur .
saniboy
Y a-t-il des processus système spécifiques que vous pourriez lister cet appel / usr / bin / python? Je suis toujours
prêt
J'en trouve pas mal en 18.04. grep -r "/usr/bin/python" /usr/bin/devrait vous donner un bref aperçu. Cela ne désactivera probablement pas votre système, mais cela peut faire en sorte que certaines choses ne fonctionnent pas. Par exemple solaar.
vidarlo
1
Sur le système que j'ai vérifié, il y en a 39 qui ne font pas de référence explicite à python3 ou python2. Tous ces éléments sont probablement python2. Cela dépend bien sûr de ce que vous avez installé, mais je ne vois aucune raison
majeure de