det rätta sättet att ställa in Python på din Mac
nya versioner av Python kommer ut på den vanliga — minst en gång i månaden eller så. Manuellt installera nya versioner är en smärta och ofta bortglömd. Med den manuella planen, innan du vet det, är du på Python 2.7.,16 (för närvarande Mac Standard) och resten av världen har gått vidare. Här ska vi använda Homebrew för att automatisera uppdateringar.
OBS: i denna påstridiga berättelse, föreslår jag att ”rätt” sätt att göra Python 3 på MacOS är att ha den senaste versionen och att hålla dig aktuell med frekvent uppdatering. Detta är en bra en-storlek-passar-alla lösning., Men om du behöver nyanserad versionshantering eller flera versioner av Python, kolla in min artikel om pyenv: flera versioner Python utveckling på Mac. Om du ställer in din Mac från grunden, min artikel noll till hjälte: ställa in din Mac för mjukvaruutveckling guidar dig genom hela processen.
Vi måste se var du börjar från för att få installationen korrekt.
har du Homebrew installerat?
eftersom vi använder Homebrew, eller brew
, för att hålla Python uppdaterad, måste den installeras., Öppna en terminal och ta reda på om den är installerad genom att kontrollera versionen:
om du inte ser något sådant och istället säger Bash -bash: brew: command not found
, då måste du installera Homebrew.
installera Homebrew
först installerar vi lite av Apples Xcode, vilket Homebrew kräver och sedan Homebrew. Detta kommer förmodligen att be om ditt lösenord och kan ta ett tag beroende på om du redan har några Xcode-komponenter installerade redan.,
$ xcode-select --install
När Xcode är klar kommer det här kommandot att installera Homebrew:
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
om allt gick bra bör du nu kunna kontrollera Homebrew-versionen:
steg 2. Hantera icke-Homebrew Python
detta är ett valfritt steg. Om du har behov av flera äldre versioner av Python, hoppa över det här steget.
har du redan installerat icke-Homebrew Python?
om du hämtade Python direkt från python.org och använde installationsprogrammet, du har icke-Homebrew Python på ditt system. Pythonen själv är exakt densamma., Det är hur det är installerat och uppdaterat som skiljer sig åt.
om du vill ha ETT squeaky-clean-system kan du ta bort externa Python-installationer. Men var försiktig! På en Mac behöver operativsystemet versionen av Python som hålls vid /usr/bin/python
. Du kan inte göra mycket för den här versionen – och försök inte eller du kommer att förstöra din Mac.
Python ligger i, eller symboliskt länkad från,/usr/local/bin
är dock inte en del av macOS och kan tas bort.
prova det här kommandot för att se var du är på:
bli av med de gamla pythonerna
försiktigt!!, Vissa applikationer inkluderar en version av Python och, som nämnts ovan, macOS förlitar sig på Python. Se till att inte ta bort dessa pytonormar!
på mitt system hade jag installerat Python olika gånger från DMG-installatörer på python.org. när jag bytte till Homebrew Python ville jag bli av med alla extra Python-installationer. Så här gjorde jag det.
Ta bort alla symboliska länkar i/usr/local/bin
som pekar på Python relaterade filer:
$ sudo rm /usr/local/bin/python*
$ sudo rm /usr/local/bin/pip*
Ta bort versioner av Python i Python framework:
$ sudo rm -Rf /Library/Frameworks/Python.framework/Versions/*
steg 3., Ställ in miljön
tidigare Python-installationer kan ha rörigt upp din miljövariabel PATH
. Vi städar upp det.
med Homebrew behöver du inte en komplicerad väg som pekar på Python-ramen. För grundläggande Python-användning är detta allt du behöver i din ~/.bash_profile
– fil:
export PATH=/usr/local/bin:/usr/local/sbin:${PATH}
extra Python-verktyg (t.ex. Pylint, iSort) installeras ibland i en annan speciell sökväg., Det är en bra idé att inkludera den sökvägen också:
export PATH=/usr/local/bin:/usr/local/sbin:${PATH}
export PATH=${PATH}:/Users/<your username>/Library/Python/3.7/bin
för de flesta Python-funktioner som ska vara allt du behöver i din PATH
.steg 4. Installera Python
med all prep ur vägen, faktiskt installera Python blir mycket lätt:
$ brew install python3
Steg 5. Uppgradera Python
nu, när du använder Brew för att uppdatera hela systemet, kommer Python också att uppdateras!
$ brew upgrade
Om du bara vill se till att Python är uppdaterad kan du göra det också.,
$ brew upgrade python3
Homebrew svarar med ett fel om du redan är uppdaterad:
Error: python3 3.7.2_1 already installed
steg 6. Installera vanliga Python paket
beroende på hur många Python paket du använder, Installera och uppdatera dem alla kan vara en smärta. Homebrew kan hjälpa till med vissa paket.
åtminstone bör du ha Pipenv installerat:
$ brew install pipenv
för andra paket, när ska du använda Homebrew vs. Pip vs. Pipenv inom en virtualenv?, Följ den här praktiska guiden:
installera med Pipenv inom ett projekt
om du inte planerar att använda ett visst Python-paket över projekt, är du förmodligen bäst att installera det med pipenv i projektets virtualenv.
till exempel, om du bara planerar att använda Pyppyn inom ett projekt (t. ex.,, project_dir/
), inifrån virtualenv du använder när du utvecklar projektet, kan du installera paketet med antingen Pip eller Pipenv. Jag rekommenderar Pipenv.
genom att använda Pipenv, skapa en ny virtualenv baserad på Python 3 — macOS standard till Python 2:
$ cd project_dir/
$ pipenv --three
Start (dvs ”aktivera”) virtualenv och installera paketet i det:
$ pipenv shell
$ pipenv install pyppyn
det här paketet, Pyppyn, kommer endast att vara tillgängligt inom virtualenv associerad med project_dir/
.,
installera med Pip utanför en virtualenv
om du vill att ett paket ska vara tillgängligt i hela ditt system men inte vill att det uppdateras automatiskt, eller om det inte finns någon homebrew-formel, kan du installera det med Pip.
om du till exempel använder Pylint för att luta din kod, över projekt, men det finns ingen homebrew-formel för den, installera den med Pip utanför någon virtualenv.,
Starta en ny terminal för att se till att du inte befinner dig i en virtualenv och installera:
$ pip3 install pylint
Detta paket, Pylint, kommer att finnas tillgänglig i ditt system, inklusive nya virtualenvs skapas baserat på Python 3.
du är dock ansvarig för att hålla den uppdaterad med Pip:
$ pip3 install pylint --upgrade
installera genom att kombinera Cron och Pip
om du vill hålla ett systemövergripande paket up-to-date automatiskt men det finns ingen homebrew formel för det, kan du enkelt använda crontab
.,
om du till exempel vill använda Pylint över dina Python-projekt och du vill att den ska hållas uppdaterad automatiskt, använd crontab
för att köra uppgraderingskommandot som vi såg ovan på ett vanligt schema.
följande kommando kommer att redigera — eller skapa — användarens crontab:
$ crontab -e
kommandot öppnar systemets standardredigerare som är Vim, om du inte har ändrat det.
om du inte redan hade en crontab
ser du en tom fil., Om du redan har en crontab
ser du dina tidigare poster.
Cron har inte tillgång till din Bash-profil, så vi ser till att systemet kan hitta kommandon genom att ställa in PATH
.
#!/bin/sh PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
efterföljande rader är crontab-poster. Varje post anger ett kommando och ett schema för kommandot., För att uppdatera Pylint, till exempel, och Homebrew, varje dag vid 3:40 respektive 3:35 pm, Kan du lägga till dessa två poster:
40 15 * * * pip3 install pylint --upgrade
35 15 * * * brew upgrade
varje gång dessa kommandon körs kommer systemet, eftertänksamt, att skicka ett mail till dig med kommandona stdout. Lägg tillMAILTO=""
till dincrontab
innan dina poster för att undertrycka dessa e-postmeddelanden. Se detta användbara inlägg för mer information om hur du använder crontab.,
installera med Homebrew
om du vill använda ett paket över projekt, vill du att det uppdateras automatiskt, och det finns en homebrew formel för det, använd Homebrew!
till exempel, om du använder Flake8 för att genomdriva stil på din kod, över projekt, du vill Flake8 uppdateras automatiskt, och eftersom det finns en homebrew formel för det, du kan använda Homebrew.
$ brew install flake8
det här paketet, Flake8, är nu tillgängligt i hela ditt system.,
några av de Python-paket och verktyg som för närvarande finns tillgängliga via Homebrew inkluderar följande:
- autopep8
- svart
- bleknar
- flake8
- lorem
- numpy
- pipenv
- pycodestyle
- pyenv
- pypy3
- pyvim
- Tox