Come posso rimuovere Python 2.7 dopo aver installato Python 3.3?


20

Ho installato con successo Python 3.3 su Ubuntu 12.10. Dal momento che non ho bisogno di più versioni di Python, voglio rimuovere il Python 2.7 esistente. Quando provo a farlo, usando

sudo apt-get remove python2.7

Ubuntu mi avvisa che ci sono tonnellate di componenti dipendenti dal sistema che verranno rimossi. Sembra davvero spaventoso.

Quindi, c'è un modo per rimuovere Python 2.7 senza rimuovere i componenti dipendenti dal sistema o posso indirizzare tali dipendenti a usare Python 3.3?


2
Non lo raccomanderei. Le versioni di Python non sono affatto così compatibili, quindi gli script più vecchi potrebbero avere problemi se non si dispone della versione corretta.
martedì

hai ragione, python3.3 ha dichiarato che non è compatibile con python 2.7. Quindi, è meglio che lo tenga. Grazie per il consiglio!
phoenix bai,

Risposte:


23

Non puoi.

Da Ubuntu wiki / Python :

Piani a più lungo termine (ad es. 14.04)

Sposta Python 2 nell'universo, porta tutte le applicazioni Python in main su Python 3. Non ci libereremo mai completamente di Python 2.7, ma dato che non ci sarà mai nemmeno un Python 2.8 e Python 2.7 avrà quasi 4 anni al momento di la versione 14.04 LTS, è tempo di relegare Python 2 nell'universo.

Ciò significa che molti pacchetti di base hanno forti dipendenze da 2.7 e ci vorrà ancora molto tempo per migrare le cose. Si noti che Python 3 presenta numerose modifiche incompatibili all'indietro, non è un normale aggiornamento del pacchetto.

Se vuoi davvero sbarazzarti di Python 2.7, dovrai aspettare la versione 14.04, ma non c'è garanzia.


3
Sono le 16.04, ora.
Muru,

Sono le 18.04, ora.
Francesco Pasa,

Sono le 19.04 fu #! E ora
Genarito,

5

Non puoi e non vuoi davvero.

Python è cambiato drasticamente tra la 2.7 e la 3.0 e ha rotto la retrocompatibilità. Gli script Python scritti per 2.7, utilizzati per supportare una grande quantità dell'infrastruttura del sistema, non funzioneranno necessariamente correttamente con Python 3.x. Questi script devono essere aggiornati per funzionare con la nuova versione e, fino a quando ciò accade, dovrai mantenere Python 2.7 in circolazione.

Questo è il motivo per cui noti un numero così elevato di dipendenze dal vecchio Python - il sistema dipende da esso. Inoltre, non c'è nulla di male ad avere entrambe le versioni di Python installate sullo stesso sistema. E in futuro potresti imbatterti in applicazioni che usano ancora Python 2.7, quindi tenerlo in giro è una buona idea.


2

Sono venuto qui nel 2019 perché sviluppo in Python3 per impostazione predefinita e sono arrivato alla stessa conclusione di OP dopo aver visto cosa sarebbe stato rimosso dopo l'esecuzione apt purge python

Dato che quello che volevo davvero era chiamare Python3 con solo python, ho corso

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

In questo modo, se Python2.7 è ancora necessario, può essere chiamato in modo esplicito python2.7mentre semplicemente chiamando pythonper impostazione predefinita Python3 a causa del collegamento simbolico.

Non ho script a livello bash che chiamano python2.7, pythonquindi questa modifica non sarebbe dirompente - mentre altri sistemi avrebbero bisogno che i loro script fossero adeguati di conseguenza se lo facessero.

La principale barriera a una distribuzione che commuta il comando python da python2 a python3 non è la rottura all'interno della distribuzione, ma invece la rottura di script di terze parti privati ​​sviluppati da amministratori di sistema e altri utenti.

- Il comando "python" su sistemi simili a Unix

Questa risposta non è una risposta diretta a OP, ma come qualcuno che ha avuto una domanda simile questa è la funzionalità che stavo cercando quando stavo pensando di rimuovere 2.7. Invece di eliminare, basta dare la priorità a quale si deve usare python.


1
Mi sembra una cattiva idea. Qualsiasi vecchio script creato per Python 2 chiamerà /usr/bin/python, mentre quasi tutti gli script creati per Python 3 saranno a conoscenza del cambiamento e chiameranno python3al momento. Lasciando pythonpunto python2.7è meno probabile che rompere le cose.
vidarlo,

Direi che dipende dall'ambiente, come ho detto che non faccio script che richiedono python2 e funzionano in 3 - mentre se facessi un cambiamento come questo su una delle nostre stazioni al lavoro con script automatizzati sarebbe molto dirompente .
saniboy,

Ci sono specifici processi di sistema che potresti elencare per chiamare / usr / bin / python? Sono sempre
pronto

Ne trovo parecchi nel 18.04. grep -r "/usr/bin/python" /usr/bin/dovrebbe darti una breve panoramica. Probabilmente non disabiliterà il tuo sistema, ma potrebbe far funzionare alcune cose. Per esempio solaar.
vidarlo,

1
Sul sistema che ho controllato, ce ne sono 39 che non fanno un riferimento esplicito a python3 o python2. Tutti quelli sono probabilmente python2. Questo ovviamente dipende da ciò che hai installato, ma non vedo grandi motivi per farlo neanche ...
vidarlo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.