Ik “ben nieuw bij de mac, en blijkbaar heb ik een soort fout gemaakt. Ik heb python geleerd, via tutorials, en tussen Homebrew, Pip en XCode zijn mijn versies op de een of andere manier allemaal gemengd. Pip3 verwijst naar python2, dus al mijn python3-proeven mislukken, enz …
I “m onderzoeken hoe ik alle versies veilig kan verwijderen en dan schieten voor een schone installatie (homebrew?) maar ik “ben een beetje nerveus.
Ik” heb een aantal uitstekende links gevonden:
Het is duidelijk dat men “niets aanraakt in de root /system
-directory, en eigenlijk wordt al het andere verwijderd . Wat me zenuwachtig maakt, is dat deze links behoorlijk oud zijn. (Zes jaar! +) Ik weet niet zeker of ik ze echt vertrouw of niet.
Is hier de laatste tijd nog iemand geweest? Kan ik de bovenstaande berichten vertrouwen? Hoe ruim ik deze puinhoop van de pythonversie op? Opmerking: ik gebruik MacOS Sierra (10.12.5)
Answer
Dus uiteindelijk heb ik alle Python-installaties verwijderd, en dingen opnieuw installeren via Homebrew.
-
which python
—>/Library/Frameworks/Python.framework/Versions/2.7/bin/python
Verwijder het volledige Python.framework directory van/Library/Frameworks
. -
which python3
—>/usr/local/bin/python3
Verwijder de hele python3-directory. -
Ik was een beetje zenuwachtig over de symlinks. Ik heb in eerste instantie de namen hernoemd die me duidelijk problemen zouden bezorgen. Het bleek niet nodig te zijn. Gebruik in plaats daarvan gewoon :
$ 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
Dus,
brew prune
(ofbrew cleanup --prune
in nieuwere versies van Homebrew) werkten perfect. Het verwijderde alle bovenstaande symlinks. -
Installeer python en python3 opnieuw via homebrew. Alles klaar.
Ik heb nooit de python-installatie aangeraakt die zich in de map /System
bevindt.
Oh, en voor de duidelijkheid. Het antwoord op de oorspronkelijke vraag is
Ja, u kunt de oude referenties vertrouwen, zoals ze zijn geschreven! Die richtlijnen zijn nog steeds geldig.
Reacties
Antwoord
Mijn Python-versie was 3.6, ik wilde upgraden naar 3.7 (voor het geval je vergelijkbare vereisten hebt). Ik gebruik macOS-versie 10.12.6 en het verwijderen en opnieuw installeren werkte voor mij:
brew uninstall --ignore-dependencies python3
Vervolgens:
brew install python3
en klaar:
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.
Reacties
- Dit werkte goed voor mij. Ik moest het
ipython
-pad aanpassen door het opstartscript handmatig te bewerken – om te verwijzen naar de brouwversie van python
Antwoord
Systeembestanden worden beschermd door System Integrity Protection. U kunt deze instructies niet volgen voor rm -rf
willekeurige mappen in / System zonder eerst SIP uit te schakelen.
Omdat de bestanden echter beschermd zijn, weet u dat de bestanden zijn niet gewijzigd. Je versie-puinhoop zou te wijten zijn aan je shell-setup en zou sowieso niet worden gewijzigd door systeembestanden te wijzigen. Je zou deze bestanden, die gegarandeerd bestaan in macOS, niet moeten aanraken.
Homebrew wordt afzonderlijk geïnstalleerd in / usr / local / Cellar. Gebruik Homebrew om je Python-installatie te beheren en negeer de systeeminstallatie volledig.
Opmerkingen
- Was dat JA, oké om die twee referenties te vertrouwen, of NEE , ‘ niet vertrouwen? Die referenties lijken van hoge kwaliteit, goed onderbouwd en behoorlijk gedetailleerd uitgelegd.
- @zipzit Je kunt ze vertrouwen, maar ze hebben ‘ t werken – dat ‘ zijn twee verschillende dingen.De inhoud is betrouwbaar; probeer het op een recente versie van macOS en het zal ‘ geen kwaad doen, maar het zal ook ‘ niet werken, om de redenen gegeven in dit antwoord. Ik raad ten zeerste aan om SIP niet uit te schakelen, alleen om de Python-installatie van je systeem te verwijderen (daarom heb ik ‘ niet gekoppeld aan instructies) omdat dat ‘ Het is niet de werkelijke oorzaak van uw probleem en ‘ zal niet helpen iets op te lossen, waardoor mogelijk meer problemen in het proces ontstaan.
- Uw antwoord is niet ‘ is voor mij niet logisch. Geen van de kwaliteitsantwoorden die hierboven zijn gelinkt, raakt iets in
/system
. None = Not One, Zero, Zip, Nada. Er zijn dingen om te verwijderen in 1) Python 3.3-map in uw map Toepassingen. 2) /Library/Frameworks/Python.framework 3) ~ 20 symlinks in / usr / local / bin. 4) referenties in shell-pad (indien aanwezig). Ik zou niet ‘ denken dat een van deze de beveiligingen waar je het over hebt, zal raken. Wat mis ik? - @zipzit Een hele tijd geleden is Python verplaatst van / Library naar / System / Library, dus je zult / System aanraken in een poging om de systeeminstallatie te verwijderen. Het Python-framework van het systeem bevindt zich in /System/Library/Frameworks/Python.framework, niet / 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 en de huidige locatie opSystem/Library/Frameworks/Python.framework/Versions/...
/System/Library/Frameworks/Python.framework/
vermelden mag nooit verwijderd worden, link docs. python.org/3/using/mac.html