Jak odinstalować Python 2.7 na Mac OS X 10.6.4?

339

Chcę całkowicie usunąć Python 2.7 z mojego Mac OS X 10.6.4. Udało mi się usunąć wpis ze PATHzmiennej, cofając mój .bash_profile. Ale chcę również usunąć wszystkie katalogi, pliki, dowiązania symboliczne i wpisy, które zostały zainstalowane przez pakiet instalacyjny Python 2.7. Mam pakiet instalacyjny z http://www.python.org/ . Jakie pozycje katalogów / plików / plików konfiguracyjnych muszę usunąć? Czy jest gdzieś lista?

Jan Deinhard
źródło

Odpowiedzi:

705

Nie należy próbować usunąć Apple dostarczany systemu Pythona, które są w /System/Libraryi /usr/bin, ponieważ może to spowodować uszkodzenie systemu operacyjnego.


UWAGA: Kroki wymienione poniżej nie wpływają na system Python 2.7 dostarczony przez Apple; usuwają tylko frameworki Python innych firm, takie jak te instalowane przez instalatorów python.org .


Pełna lista jest tutaj udokumentowana . Zasadniczo wszystko, co musisz zrobić, to:

  1. Usuń środowisko Python 2.7 innej firmy

    sudo rm -rf /Library/Frameworks/Python.framework/Versions/2.7
  2. Usuń katalog aplikacji Python 2.7

    sudo rm -rf "/Applications/Python 2.7"
  3. Usuń dowiązania symboliczne /usr/local/binwskazujące tę wersję języka Python. Zobacz je za pomocą

    ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' 

    a następnie uruchom następujące polecenie, aby usunąć wszystkie łącza:

    cd /usr/local/bin/
    ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' | awk '{print $9}' | tr -d @ | xargs rm
  4. W razie potrzeby dokonaj edycji plików profilu powłoki, aby usunąć dodawanie /Library/Frameworks/Python.framework/Versions/2.7do PATHpliku środowiska. W zależności od powłoki używasz, każdy z następujących plików może być modyfikowany: ~/.bash_login, ~/.bash_profile, ~/.cshrc, ~/.profile, ~/.tcshrc, i / lub ~/.zprofile.

Ned Deily
źródło
157
Dzięki za heads-upa Neda, usunąłem go i dowiedziałem się, w jaki sposób musisz ponownie zainstalować Mac OS X. Zostawiam to tutaj dla każdego, kto przyjdzie i myśli tak samo, jak ja. Nie usuwaj Pythona w / System / Library / Frameworks / ... Żadna z twoich aplikacji nie będzie działać i będziesz musiał ponownie zainstalować OS X.
brthornbury
44
Python 2.7 jest domyślnym systemem Python w najnowszych systemach, podczas gdy w wersji 10.6.4 było to 2.6, a wersja 2.7 została zainstalowana przez użytkownika. NIE ODINSTALUJ 2.7 Z OSTATNEGO SYSTEMU OS X.
Martijn Pieters
30
Powyższe kroki nie usuwają systemowego Pythona z żadnej wersji OS X. Pythony systemowe są instalowane w /System/Library/Frameworks(których nigdy nie należy modyfikować), a nie /Library/Frameworks.
Ned Deily
5
brew doctormożna również użyć do znalezienia nieużywanych dowiązań symbolicznych.
Shubham Kushwah
5
Nie rób tych kroków !!!!! Twoje środowisko virtualenv zostanie zepsute !!!!! O mój Boże!!! Dlaczego zrobiłem te kroki !!!!!!!!!!
FIREUSD,
75

Ten działa:

cd /usr/local/bin/
ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' | awk '{print $9}' | tr -d @ | xargs rm

Opis: Wyświetla listę wszystkich łączy, usuwa @postać, a następnie usuwa je.

stożek
źródło
1
Próbowałem wszystkich odpowiedzi tutaj podanych i to ta, która w końcu załatwiła sprawę.
jtsmith1287
25

Jeśli zainstalowałeś go za pomocą instalatora PKG, możesz:

pkgutil --pkgs

albo lepiej:

pkgutil --pkgs | grep org.python.Python

która wyświetli coś takiego:

org.python.Python.PythonApplications-2.7
org.python.Python.PythonDocumentation-2.7
org.python.Python.PythonFramework-2.7
org.python.Python.PythonProfileChanges-2.7
org.python.Python.PythonUnixTools-2.7

możesz teraz wybrać, które pakiety rozłączysz (usuniesz).

To jest dokumentacja unlink:

 --unlink package-id
             Unlinks (removes) each file referenced by package-id. WARNING: This command makes no attempt to perform reference counting or dependency analy-
             sis. It can easily remove files required by your system. It may include unexpected files due to package tainting. Use the --files command first
             to double check.

W moim przykładzie napiszesz

pkgutil --unlink org.python.Python.PythonApplications-2.7
pkgutil --unlink org.python.Python.PythonDocumentation-2.7
pkgutil --unlink org.python.Python.PythonFramework-2.7
pkgutil --unlink org.python.Python.PythonProfileChanges-2.7
pkgutil --unlink org.python.Python.PythonUnixTools-2.7

lub w jednej linii:

pkgutil --pkgs | grep org.python.Python | xargs -L1 pkgutil -f --unlink

Ważne: - link nie jest już dostępny, począwszy od Lwa (od Q1`2014, który obejmowałby Lwa, Lwa Górskiego i Mavericks). Jeśli ktoś, kto wejdzie w tę instrukcję, spróbuje użyć jej z lwem, powinien zamiast tego spróbować dostosować ją do tego, co mówi ten post: https://wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_X

Gabriel Mazetto
źródło
4
Niestety, w zależności od pkgutil, nie usunie wszystkich plików zainstalowanych przez instalator Pythona, ponieważ niektóre z nich są tworzone podczas skryptów po zakończeniu instalacji i jako takie nie są rejestrowane.
Ned Deily,
21

Próba odinstalowania Pythona za pomocą

brew uninstall python

będzie nie usunąć natywnie zainstalowany Python, ale raczej wersja zainstalowany brew.

Daniel Lee
źródło
9

W odniesieniu do usuwania dowiązań symbolicznych uznałem, że jest to przydatne.

find /usr/local/bin -lname '../../../Library/Frameworks/Python.framework/Versions/2.7/*' -delete
użytkownik86559
źródło
jest to o wiele lepszy pomysł niż analiza wyników lsjak w przyjętej odpowiedzi
spinup
8

Utwórz dowiązanie symboliczne do najnowszej wersji

 ln -s -f /usr/local/bin/python3.8 /usr/local/bin/python

Zamknij i otwórz nowy terminal

i próbuj

 python --version
Athul Raj
źródło
Bardzo dziękuję i to samo dotyczy pipa „ln -s -f / usr / local / bin / pip3 / usr / local / bin / pip”, a następnie „pip --version” także jeśli chcesz zaktualizować pip użyj tej komendy „pip install
upgrade
6

Nie trzeba odinstalowywać starych wersji Pythona.

Wystarczy zainstalować nową wersję, powiedz python-3.3.2-macosx10.6.dmg i zmień miękki link python na nowo zainstalowany python3.3

Sprawdź ścieżkę domyślnego python i python3.3 za pomocą następujących poleceń

„which python” i „which python3.3”

następnie usuń istniejące miękkie łącze Pythona i wskaż je na python3.3

minhas23
źródło
10
Dzięki, ale to nie odpowiada na moje pytanie. Pytanie nie brzmi, czy muszę odinstalować starą wersję Pythona, aby zainstalować nową wersję.
Jan Deinhard
1
To wydaje się najbezpieczniejsze podejście, ponieważ dla mnie zgranie z tym, co system operacyjny uruchamia na maszynie, zwykle nie kończy się tak dobrze. Ja również „dostałem pakiet instalacyjny z python.org ” po napotkaniu problemów ze składnią instrukcji python3 w powłoce python2. Moją pierwszą myślą było usunięcie python2 i użycie zamiast niego python3. Jednak z wcześniejszych postów, które potwierdzają niebezpieczeństwa tego działania. To było dla mnie lepsze rozwiązanie i jest zgodne z ideą „używania linków w celu zmiany trasy”. Ponadto powłoka python3 została już zainstalowana, wystarczyło wpisać „python3” zamiast „python” w wierszu polecenia.
Mark Longmire,
@ minhas23 Jak usunąć miękki link i utworzyć nowy?
doberkofler,
5

Onur Güzel zapewnia rozwiązanie w swoim blogu, „Odinstaluj Python pakiet z OSX .

W terminalu należy wpisać następujące polecenia:

  1. sudo rm -rf /Library/Frameworks/Python.framework
  2. cd /usr/local/bin
  3. ls -l . | grep '../Library/Frameworks/Python.framework' | awk '{print $9}' | xargs sudo rm
  4. sudo rm -rf "/Applications/Python x.y"

    gdzie polecenie xy jest zainstalowaną wersją Pythona. Według twojego pytania powinno to być 2,7.

Słowami Onura:

OSTRZEŻENIE: Polecenia te usuną wszystkie wersje Pythona zainstalowane z pakietami. Nie wpłynie to na Python dostarczony z systemu.

Jeśli masz więcej niż jedną wersję Pythona zainstalowaną z python.org, uruchom ponownie czwarte polecenie, zmieniając „xy” dla każdej wersji Pythona, która ma zostać odinstalowana.

AQ
źródło
To rozwiązało mój problem, mam wersję 2.7.10 i zainstalowałem wersję 2.7.15, a kiedy uruchomiłem „python”, wersja 2.7.10 nadal wyświetlała się nie w wersji 2.7.15, po waszej pomocy wszystko działa teraz, dziękuję
Radek
4

Uwaga : Jeśli zainstalowałeś Python za pomocą Homebrew, możesz wykonać następujące kroki, w przeciwnym razie poszukaj innego rozwiązania!


Aby odinstalować Python 2.7.10, który zainstalowałeś za pomocą Homebrew, możesz po prostu wydać następujące polecenie:

brew uninstall python

Podobnie, jeśli chcesz odinstalować Python 3 (który zainstalowałeś za pomocą Homebrew):

brew uninstall --force python3
John Mulhall
źródło
3

Nie musisz go odinstalowywać ani szaleć z symbolicznymi linkami, po prostu użyj alias. Napotkałem ten sam problem podczas aktualizacji do Pythona 3.7.1.
Wystarczy zainstalować nową wersję Pythona, używając brew install pythonnastępnie w swoim .bash_profilealiasie wskazującym nową wersję Pythona; w ten sposób: alias python="/usr/local/bin/python3"następnie zapisz i uruchom source ~/.bash_profile.
Gotowy.

Roberto Manfreda
źródło
2

Jeśli zastanawiasz się nad ręcznym usunięciem domyślnego języka Python 2.7 firmy Apple, sugeruję zawieszenie się i zwrócenie uwagi: Wygląda na to, że Apple wkrótce zrobi to za Ciebie:

Python 2.7 Przestarzałe w OSX 10.15 Catalina

Python 2.7- oraz Ruby i Perl- są przestarzałe w Catalina: (przejdź do sekcji „Środowiska wykonawcze języka skryptowego ”> „ Przestarzałe ”)

https://developer.apple.com/documentation/macos_release_notes/macos_catalina_10_15_release_notes

Apple, aby usunąć Python 2.7 w OSX 10.16

Rzeczywiście, jeśli nic nie zrobisz, zgodnie z The Mac Observer , według OSX w wersji 10.16, Python 2.7 zniknie z twojego systemu:

https://www.macobserver.com/analysis/macos-catalina-deprecates-unix-scripting-languages/

Biorąc pod uwagę to objawienie, sugeruję, że najlepszym rozwiązaniem jest nic nie rób i poczekaj, aż Apple go wytrze. Ponieważ Apple ma wkrótce je dla ciebie usunąć, nie warto ryzykować majstrowania przy środowisku Python.

UWAGA : Widzę, że pytanie dotyczy konkretnie OSX v 10.6.4 , ale wydaje się, że to pytanie stało się punktem zwrotnym dla wszystkich ludzi OSX zainteresowanych usunięciem Pythona 2.7 ze swoich systemów, niezależnie od wersji, którą uruchomili.

F1Linux
źródło