Verwijder Python en installeer het opnieuw op Mac — Kan ik deze oude referenties vertrouwen?

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.

  1. which python —> /Library/Frameworks/Python.framework/Versions/2.7/bin/python Verwijder het volledige Python.framework directory van /Library/Frameworks.
  2. which python3 —> /usr/local/bin/python3 Verwijder de hele python3-directory.
  3. 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 (of brew cleanup --prune in nieuwere versies van Homebrew) werkten perfect. Het verwijderde alle bovenstaande symlinks.

  4. 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

  • @nohillside thx maar .. je zou kunnen hebben herkende gemakkelijk de recente input van XXXX hier die ertoe leidde dat u hier als commentaar moest bewerken. Lijkt een vreemde attributiemis voor jou .. Mogen newby ‘ s geen opmerkingen plaatsen? En nu kan ik ‘ de verzendnaam niet zien om het zelf te doen.
  • De beste manier om een toeschrijving te krijgen, is door een bericht daadwerkelijk te bewerken voor het geval dat het moet worden bewerkt , iets wat alle gebruikers (zelfs anonieme gebruikers) kunnen doen. Als gebruikers ervoor kiezen verbetercommentaar als antwoord te plaatsen, bewerk ik ze meestal in het gerelateerde bericht.
  • Homebrew-versies van Python zullen geen ondersteuning bieden voor Xcode of tooling zoals beitel de laatste die ik heb gecontroleerd. Dus dit wordt doorgaans niet aanbevolen.
  • Gewoon /System/Library/Frameworks/Python.framework/ vermelden mag nooit verwijderd worden, link docs. python.org/3/using/mac.html
  • nieuwe versie heeft brouwopruiming

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 op System/Library/Frameworks/Python.framework/Versions/...

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *