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.
-
which python
—>/Library/Frameworks/Python.framework/Versions/2.7/bin/python
Usuń cały Python.framework katalog z/Library/Frameworks
. -
which python3
—>/usr/local/bin/python3
Usuń cały katalog python3. -
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
(lubbrew cleanup --prune
w nowszych wersje Homebrew) działały doskonale. Usunięto wszystkie powyższe dowiązania symboliczne. -
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
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 adresemSystem/Library/Frameworks/Python.framework/Versions/...
/System/Library/Frameworks/Python.framework/
nie może być nigdy usuwane, link do dokumentów. python.org/3/using/mac.html