Jak mogę usunąć Python 2.7 po zainstalowaniu Python 3.3?

20

Pomyślnie zainstalowałem Python 3.3 na Ubuntu 12.10. Ponieważ nie potrzebuję wielu wersji Pythona, chcę usunąć istniejący Python 2.7. Kiedy próbuję to zrobić, używając

sudo apt-get remove python2.7

Ubuntu ostrzega mnie, że istnieje mnóstwo komponentów zależnych od systemu, które również zostaną usunięte. Wygląda naprawdę przerażająco.

Czy jest więc sposób na usunięcie Pythona 2.7 bez usuwania komponentów zależnych od systemu, czy też mogę skierować te osoby zależne do używania Pythona 3.3?

feniks bai
źródło
2
Nie polecałbym tego. Wersja w języku Python wcale nie jest tak kompatybilna, więc starsze skrypty mogą mieć problemy, jeśli nie będziesz mieć poprawnej wersji.
tikend
masz rację, python3.3 zadeklarował, że jest niezgodny z python 2.7. Więc lepiej to po prostu zachowaj. Dzięki za radę!
phoenix bai

Odpowiedzi:

23

Nie możesz

Z Ubuntu wiki / Python :

Plany długoterminowe (np. 14.04)

Przenieś Python 2 do wszechświata, przenieś wszystkie główne aplikacje Pythona do Pythona 3. Nigdy nie pozbędziemy się w pełni Python 2.7, ale ponieważ nigdy nie będzie też Python 2.8, a Python 2.7 będzie miał prawie 4 lata w wersji 14.04 LTS nadszedł czas na przeniesienie Pythona 2 do wszechświata.

Oznacza to, że wiele pakietów podstawowych ma silne zależności od wersji 2.7, a migracja zajmie dużo czasu. Zauważ, że Python 3 ma wiele niezgodnych wstecz wersji - nie jest to zwykła aktualizacja pakietu.

Jeśli naprawdę chcesz pozbyć się Pythona 2.7, musisz poczekać na wydanie 14.04, ale nie ma gwarancji.

gertvdijk
źródło
3
Teraz jest 16.04.
mur 21.04.16
Teraz jest 18.04.
Francesco Pasa,
Jest 19.04 fu #! A teraz
Genarito
5

Nie możesz i naprawdę nie chcesz.

Python zmienił się drastycznie między 2,7 ​​a 3,0 i złamał kompatybilność wsteczną. Skrypty w języku Python napisane dla wersji 2.7, które są używane do obsługi dużej części infrastruktury systemu, niekoniecznie będą działać poprawnie w języku Python 3.x. Te skrypty muszą zostać zaktualizowane, aby działały z nową wersją, i dopóki to się nie stanie, musisz trzymać Python 2.7 w pobliżu.

Dlatego zauważasz tak dużą liczbę zależności od starego Pythona - system od niego zależy. Poza tym nie ma nic złego w tym, że obie wersje Pythona są zainstalowane w tym samym systemie. W przyszłości możesz natknąć się na aplikacje, które nadal używają Python 2.7, więc utrzymywanie go jest dobrym pomysłem.

użytkownik173076
źródło
3

Przybyłem tutaj w 2019 roku, ponieważ domyślnie rozwijam w Python3 i doszedłem do tego samego wniosku co OP po zobaczeniu, co zostanie usunięte po uruchomieniu apt purge python

Ponieważ to, co naprawdę chciałem to nazwać Python3 z tylko pythonpobiegłem

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

W ten sposób, jeśli Python2.7 jest nadal potrzebny, można go wywołać jawnie za pomocą, python2.7podczas gdy zwykłe wywołanie pythondomyślnie ustawi się na Python3 z powodu dowiązania symbolicznego.

Nie mam żadnych skryptów na poziomie bash, które wywołują Python2.7, pythonwięc zmiana nie byłaby uciążliwa - podczas gdy inne systemy wymagałyby odpowiedniego dostosowania skryptów, gdyby tak zrobiły.

Główną barierą dla dystrybucji przełączającej komendę python z python2 na python3 nie jest uszkodzenie w ramach dystrybucji, ale uszkodzenie prywatnych skryptów stron trzecich opracowanych przez sysadmins i innych użytkowników.

- Polecenie „python” w systemach uniksopodobnych

Ta odpowiedź nie jest bezpośrednią odpowiedzią na OP, ale jako ktoś, kto miał podobne pytanie, to właśnie tej funkcji szukałem, gdy myślałem o usunięciu wersji 2.7. Zamiast usuwać, po prostu ustal, który z nich ma zostać użyty python.

saniboy
źródło
1
Uderza mnie to jako zły pomysł. Wszystkie stare skrypty stworzone dla Pythona 2 będą wywoływane /usr/bin/python, podczas gdy prawie każdy skrypt stworzony dla Pythona 3 będzie świadomy zmiany i wywoła się python3w chwili obecnej. Pozwolenie na pythonpunkt python2.7jest mniej prawdopodobne, aby coś zepsuło.
vidarlo
Powiedziałbym, że zależy to od środowiska, tak jak powiedziałem, że nie tworzę skryptów, które wymagają Python2 i działają w 3 - podczas gdybym zrobił taką zmianę na jednej z naszych stacji w pracy z automatycznymi skryptami, byłoby to bardzo destrukcyjne .
saniboy
Czy są jakieś specyficzne procesy systemowe, które można wymienić na liście / usr / bin / python? Zawsze jestem otwarty na zmianę zdania, gdy otrzymuję nowe informacje
saniboy,
Sporo znalazłem w 18.04. grep -r "/usr/bin/python" /usr/bin/powinien dać ci krótki przegląd. Prawdopodobnie nie wyłączy twojego systemu, ale może sprawić, że niektóre rzeczy nie będą działać. Na przykład solaar.
vidarlo
1
W systemie, który sprawdziłem, jest 39, które nie zawierają wyraźnego odniesienia do python3 lub python2. Wszystkie to prawdopodobnie python2. To oczywiście zależy od tego, co zainstalowałeś, ale nie widzę też żadnego ważnego powodu, aby to zrobić ...
vidarlo