Správné a co špatné způsob, jak nastavit Python 3, na MacOS
„už namáčení můj prst zpět do rozvoje Python jako já, připravte se, zamiřte do PyCon NÁS. (Pokud jste tam také zamířil a chcete se podělit o svůj příběh Python, dejte mi vědět!) Když jsem nainstaloval modul, se kterým jsem si pohrával, dostal jsem připomínku, že jsem brzy musel nainstalovat Python 3.
$ pip install todoist-python
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won"t be maintained after that date. A future version of pip will drop support for Python 2.7.
Tak jsem udělal to, co každý z nás by si vygooglila a hledat pro průvodce aktualizovat své vývojové prostředí, které běží na Mac (macOS operační systém, dříve známý jako OS X)., K mému překvapení jsem našel jen hrst StackOverflow příspěvků, a oni mě ukázal na dílčí řešení. Zde je celý příběh o tom, jak nastavit své prostředí, aniž by došlo k rozbití něco zabudovaného do operačního systému macOS.
1. Nainstalujte pyenv
Moše Zadka varuje, že to dělám špatně by mohla vést k nespolehlivé nápad, který Python je systémem, který závisí příliš úzce na skořápky načítání jmen. Věděl jsem, Moshe byl obeznámen s Python, ale to, co jsem nevěděl, je, že je autorem mnoha Python tutoriály, stejně jako nadcházející knihu o vývoji Python na macOS., Pomohl 40 kolegů rozvíjet Python bezpečně a trvale na macOS systémů následující hlavní zásady:
„základní předpoklad všech Python rozvoj je nikdy používat systém Python. Nechcete, aby Mac OS X “ default Python „byl“ python3.“Chcete se nikdy starat o výchozí Python.“
Jak se přestaneme starat o výchozí nastavení? Moshe doporučuje používat pyenv ke správě prostředí Pythonu (pro hlubší ponor při konfiguraci pyenv, viz tento článek)., Tento nástroj spravuje více verzí Pythonu a je popisován jako „jednoduchý, nenápadný, a následuje Unix tradice jednoúčelových nástrojů, které dobře udělat jednu věc.“
Zatímco ostatní možnosti instalace jsou k dispozici, nejjednodušší způsob, jak začít, je s Homebrew:
$ brew install pyenv
🍺 /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB
Instalovat Python
„nainstalovat nejnovější Python (verze 3.7.,3 jak tohoto psaní):
Nastavit globální výchozí
Nyní, že Python 3 je nainstalován pomocí pyenv, chceme nastavit jako naše globální výchozí verze pro pyenv prostředí:
$ pyenv global 3.7.3
# and verify it worked
$ pyenv version
3.7.3 (set by /Users/mbbroberg/.pyenv/version)
síla pyenv pochází z jeho kontrolu nad naše prostředí“s cesty. Aby to fungovalo správně, musíme do našeho konfiguračního souboru (.zshrc pro mě, možná .bash_profile pro vás):
po tomto příkazu náš dotfile (.zshrc pro zsh nebo .,bash_profile pro Bash) by měla obsahovat tyto řádky:
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
Nyní s jistotou víme, že jsme“re pomocí Python 3.7.3 a pip bude aktualizovat po boku bez jakéhokoliv manuálního aliasing mezi verzemi. Pomocí Moše“s doporučením použít verzi správce (pyenv) nám umožňuje snadno přijímat budoucí aktualizace, aniž by se zmatený o tom, které Python jsme běží v daném čase.
úspěch
jak se vám tento pracovní postup líbí, můžete pomocí pyenv spravovat více verzí Pythonu. Je také nezbytné, pro správu závislostí, používat virtuální prostředí., Zmíním se o tom, jak používat vestavěnou knihovnu venv v článku, a Moshe doporučuje virtualenvwrapper pro správu virtuálních prostředí.
porozumění běhům Pythonu
Nyní, když máte opravené verze Pythonu, je bezpečné prozkoumat, proč tento problém zaměňuje tolik lidí.
verze Pythonu, která je dodávána s macOS, je dobře zastaralá od toho, co Python doporučuje použít pro vývoj. Přemýšlení o běhu Pythonu může být občas komicky náročné, jak poznamenal XKCD.,
mnoho uživatelů má ve svém počítači již desítky tlumočníků Pythonu, ale netuší, jak je efektivně spravovat. Příliš často, lidé prostě stáhnout nejnovější Python uvolnit, přesunout na jejich cestě, a nazývat to den (nebo použijte brew install python3, který by něco podobného). To může způsobit přerušení linky frustrujícími způsoby, které lze obtížně řešit.,
Co dělat
Můj první nápad, jak udělat Python 3 výchozím Python na můj systém bylo, aby se přesunout staré verze a přidat nové:
vzor následovat, co /usr/bin/ obvykle se mezi major verzemi Pythonu, ale rychle jsem se dozvěděl, že to byl špatný krok:
$ sudo mv /usr/bin/python /usr/bin/python2
mv: rename /usr/bin/python to /usr/bin/python2: Operation not permitted
Naštěstí, macOS chráněných mě od lámání něco, co jsem don“t plně pochopit. Další výzkum dokazuje, že to je přesně to, co bychom neměli dělat.
další věc, kterou nezkusit
Nyní, když víme, co nedělat, pojďme se podívat na to, co bychom mohli udělat., Existuje několik možností, když přemýšlíme o běžných instalačních vzorcích pro aplikace v systému macOS.
použijte Python 3 jako výchozí macOS
Python má instalační program macOS Python 3, který si můžeme stáhnout a použít. Pokud použijeme instalaci balíčku, bude python3 fill k dispozici v / usr / local / bin/.
Aliasing je nutností, protože binární Python uložený v / usr / bin/nemůže být změněn. Co je hezké o alias je, že je specifická pro naše příkazového řádku shell. Vzhledem k tomu, že používám zsh ve výchozím nastavení, vložil jsem následující do.,soubor zshrc:
Pokud používáte výchozí shell Bash, můžete tento text připojit k vašemu .bashrc:
tato strategie funguje, ale není ideální pro vytváření budoucích aktualizací Pythonu. To znamená, že musíme mít na paměti, zkontrolovat webové stránky a stahovat nové soubory, protože Python nezahrnuje příkazový řádek způsob aktualizace.
Have Homebrew manage Python 3
Projekt Homebrew poskytuje bezplatný a open source správce balíčků pro macOS, na který se mnoho lidí spoléhá. To dává uživatelům Apple sílu podobnou apt-get nebo yum., Pokud jste uživatelem Homebrew, možná již máte nainstalován Python. Chcete-li rychle zkontrolovat, spusťte:
$ brew list | grep python
python
Pokud se Python zobrazí pod příkazem, je nainstalován. Jaká je verze? Pojďme zkontrolovat:
dobře, skvěle! Správci Homebrew aktualizovali výchozí Python láhev ukázat na nejnovější verzi., Protože Homebrew správci jsou spolehlivější na aktualizaci vydání, než většina z nás, můžeme použít Homebrew“s verzi Python 3 s následujícím příkazem:
Nyní chceme ukázat naši alias (z výše uvedených) na kopii Python že Homebrew spravuje:
# If you added the previous alias, use a text editor to update the line to the following
alias python=/usr/local/bin/python3
ujistěte Se, že cesta výše uvedených bodů, kde Homebrew nainstalován Python v našem prostředí, můžeme vařit info python a podívejte se na informace o cestě.,
tato metoda, použití Homebrew pro správu našeho prostředí Python ,je dobrým výchozím místem, a to dávalo smysl pro mě v té době.
co když ještě potřebujeme Python 2?
má smysl, aby každý nový Python začal Pythonem 3., Ale ti z nás, kteří ještě potřebují Python 2—například přispět k Python projekt, který“je k dispozici pouze v Pythonu 2—můžete i nadále používat výchozí macOS Python binary k dispozici v adresáři /usr/bin/python:
$ /usr/bin/python
>>> print("This runtime still works!")
This runtime still works!
Homebrew je tak nádherný, že dokonce nabízí různé vzorce pro Python 2:
# If you need Homebrew"s Python 2.7 run
$ brew install python@2
V každém okamžiku, můžeme odstranit aliasy z naší shell“s konfigurační soubor, který chcete vrátit k používání výchozí kopírování Pythonu v systému.
nezapomeňte aktualizovat pip na pip3!,
příkaz pip je výchozí správce balíčků speciálně pro balíčky Python. Přestože jsme změnili náš výchozí příkaz Python být verze 3, musíme alias náš příkaz pip zvlášť, pokud je to na předchozí verzi. Za prvé, musíme zkontrolovat, jakou verzi jsme“re na:
Aby zajistili,“znovu instalaci balíčků kompatibilní s naší novou verzi Python, jsme“ll použít jiný alias upozornit na kompatibilní verzi pip. Vzhledem k tomu, že v této situaci používáme Homebrew jako správce balíčků, víme, že při instalaci Pythonu 3 nainstaloval pip3., Výchozí cesta by měla být stejná jako Python 3, ale můžeme potvrdit tím, že žádá shell najít to:
$ which pip3
/usr/local/bin/pip3
Nyní, že známe místo, přidáme jej do naší shell konfigurační soubor, jako jsme to udělali předtím:
$ echo "alias pip=/usr/local/bin/pip3" >> ~/.zshrc
# or for Bash
$ echo "alias pip=/usr/local/bin/pip3" >> ~/.bashrc
Poslední, můžeme potvrdit, že běží pip bodů na pip3 tím, že otevře nový shell nebo obnovením naší aktuální shell a vidět to, co jsme bod:
# This command reloads the current shell without exiting the session
# Alternatively, exit the shell and start a new one
$ exec $0
# Now we can look to see where pip points us
$ which pip
pip: aliased to /usr/local/bin/pip3
můžeme vyhnout pomocí Homebrew aktualizovat pip, ale to vyžaduje mnohem delší tutoriál z dokumentace Pythonu.,
Udělej to hned od začátku
Pokud jste se právě začínáme s Python vývoj na macOS, proveďte potřebné konfigurace se ujistěte se, že jste“re používáte správnou verzi Python od začátku. Instalace Python 3, s nebo bez Homebrew, a pomocí alias vám umožní začít kódování,ale to není dobrá strategie pro dlouhodobý. Použití pyenv jako jednoduché řešení pro správu verzí, které vás dovede k dobrému startu.
tento článek byl původně publikován v květnu 2019 a byl aktualizován editorem.