Usuń i ponownie zainstaluj Pythona na Macu — Czy mogę ufać tym starym referencjom?

Jestem nowy na Macu i najwyraźniej popełniłem jakiś błąd. Uczyłem się języka Python, korzystając z samouczków i między Homebrew, Pip i XCode w jakiś sposób wszystkie moje wersje są mieszane. Pip3 wskazuje na Python2, więc wszystkie moje testy Pythona3 kończą się niepowodzeniem, itd …

szukam informacji, jak bezpiecznie usunąć wszystkie wersje, a następnie strzelać do czystej instalacji (homebrew?), ale „trochę się denerwuję.

” Znalazłem świetne linki:

Najwyraźniej niczego nie dotyka się w katalogu głównym /system, a właściwie wszystko inne zostaje usunięte . Denerwuje mnie to, że te linki są dość stare. (Sześć lat! +) Nie jestem pewien, czy naprawdę im ufam, czy nie.

Ktoś tu ostatnio był? Czy mogę ufać postom, do których link znajduje się powyżej? Jak wyczyścić ten bałagan w wersji Pythona? Uwaga: korzystam z MacOS Sierra (10.12.5)

Odpowiedź

W końcu usunąłem wszystkie instalacje Pythona, i przeinstalowanie rzeczy przez Homebrew.

  1. which python —> /Library/Frameworks/Python.framework/Versions/2.7/bin/python Usuń cały Python.framework katalog z /Library/Frameworks.
  2. which python3 —> /usr/local/bin/python3 Usuń cały katalog python3.
  3. Byłem trochę zdenerwowany dowiązaniami symbolicznymi. Początkowo zmieniłem nazwy tych, które najwyraźniej sprawiały mi kłopoty. Okazało się, że to niepotrzebne. Zamiast tego po prostu użyj :

    $ brew doctor Warning: Broken symlinks were found. Remove them with "brew prune": /usr/local/bin/python-32 /usr/local/bin/python2-32 /usr/local/bin/python2.7-32 /usr/local/bin/python2_DNU /usr/local/bin/python_DNU /usr/local/bin/pythonw-32 /usr/local/bin/pythonw2-32 /usr/local/bin/pythonw2.7-32 

    A więc brew prune (lub brew cleanup --prune w nowszych wersje Homebrew) działały doskonale. Usunięto wszystkie powyższe dowiązania symboliczne.

  4. Ponownie zainstaluj pythona i pythona3 przez homebrew. Wszystko gotowe.

Nigdy nie dotknąłem instalacji Pythona znajdującej się w folderze /System.

Aha, i żeby było jasne. Odpowiedź na pierwotne pytanie brzmi

Tak, możesz ufać starym referencjom, tak jak napisano! Te wskazówki są nadal aktualne.

Komentarze

  • @nohillside thx, ale … możesz mieć łatwo potwierdził ostatnie wejście z XXXX tutaj, które skłoniło do twojej zmiany jako komentarz tutaj. Wydaje się dziwne, że brakuje Ci przypisania. Czy nowicjuszowi ' nie wolno publikować komentarzy? A teraz mogę ' zobaczyć nazwę zgłoszenia, aby zrobić to sam.
  • Najlepszym sposobem na uzyskanie informacji o źródle jest faktyczna edycja posta na wypadek, gdyby była wymagana edycja coś, co mogą zrobić wszyscy użytkownicy (nawet anonimowi). Jeśli użytkownicy zdecydują się publikować komentarze dotyczące ulepszeń jako odpowiedzi, zwykle po prostu edytuję je w odpowiednim poście.
  • Wersje Pythona z Homebrew nie będą zawierać obsługi Xcode ani narzędzi takich jak dłuto, które ostatnio sprawdzałem. Dlatego zazwyczaj nie jest to zalecane.
  • Wystarczy wspomnieć, że /System/Library/Frameworks/Python.framework/ nie może być nigdy usuwane, link do dokumentów. python.org/3/using/mac.html
  • nowa wersja przygotowała porządki

Odpowiedź

Moja wersja Pythona to 3.6, chciałem zaktualizować do 3.7 (na wypadek, gdybyś miał podobne wymagania). Używam systemu macOS w wersji 10.12.6 i po prostu odinstalowanie i ponowna instalacja zadziałały:

brew uninstall --ignore-dependencies python3 

Następnie:

brew install python3 

i gotowe:

python3 Python 3.7.2 (default, Jan 13 2019, 12:51:54) [Clang 9.0.0 (clang-900.0.39.2)] on darwin Type "help", "copyright", "credits" or "license" for more information. 

Komentarze

  • To działało dobrze dla mnie. Musiałem dostosować ścieżkę ipython, ręcznie edytując skrypt uruchamiania – aby wskazać wersję brewia Pythona

Odpowiedź

Pliki systemowe są chronione przez Ochronę integralności systemu. Nie będziesz w stanie wykonać tych instrukcji rm -rf losowych folderów w / System bez uprzedniego wyłączenia SIP.

Jednak ponieważ pliki są chronione, wiesz pliki nie zostały zmodyfikowane. „Bałagan wersji” byłby spowodowany ustawieniem powłoki i i tak nie zostałby zmieniony przez modyfikację plików systemowych. Nie należy dotykać tych plików, które na pewno istnieją w systemie macOS.

Homebrew instaluje się osobno w / usr / local / Cellar. Użyj Homebrew do zarządzania instalacją Pythona i całkowicie zignoruj instalację systemu.

Komentarze

  • Czy tak było, można zaufać tym dwóm referencjom, czy też NIE , nie ' nie ufasz im? Te referencje wydają się być wysokiej jakości, dobrze uzasadnione i wyjaśnione w całkiem niezłych szczegółach.
  • @zipzit Możesz im ufać, ale wygrały ' t działa – to ' to dwie różne rzeczy.Treść jest godna zaufania; wypróbuj go w najnowszej wersji systemu macOS i nie wyrządzi żadnej szkody ', ale też ' nie zadziała z powodów podane w tej odpowiedzi. Zdecydowanie odradzam wyłączanie SIP tylko po to, aby usunąć systemową instalację Pythona (dlatego nie ' t nie mam linku do instrukcji), ponieważ ' nie jest rzeczywistą przyczyną Twojego problemu i wygrał ' nie pomoże w rozwiązaniu czegokolwiek, potencjalnie powodując więcej problemów w procesie.
  • Twoja odpowiedź nie ' t nie ma dla mnie sensu. Żadna z jakościowych odpowiedzi, do których link znajduje się powyżej, nie dotyczy niczego w /system. None = Not One, Zero, Zip, Nada. Są rzeczy do usunięcia w 1) folderze Python 3.3 w folderze Aplikacje. 2) /Library/Frameworks/Python.framework 3) ~ 20 dowiązań symbolicznych w / usr / local / bin. 4) odniesienia w ścieżce powłoki (jeśli istnieją). Nie ' nie sądzę, że którykolwiek z nich będzie miał wpływ na zabezpieczenia, o których mówisz. Czego mi brakuje?
  • @zipzit Jakiś czas temu Python został przeniesiony z / Library do / System / Library, więc będziesz dotykać / System, próbując usunąć instalację systemu. Struktura systemowa Pythona znajduje się w /System/Library/Frameworks/Python.framework, a nie w / Library.
  • $which python /Library/Frameworks/Python.framework/Versions/2.7/bin/python $ which python3 /usr/local/bin/python3 plus python 2.3, 2.4, 2.5, 2.7 i aktualny pod adresem System/Library/Frameworks/Python.framework/Versions/...

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *