A helyes és helytelen módja annak, hogy a Python 3-at MacOS
én már mártotta a lábujjam vissza Python fejlesztés, mint én kap készen áll a fejét, hogy PyCon minket. (Ha te is oda tartasz, és meg akarod osztani a Python történetedet, szólj!) Amikor telepítettem egy modult a bütyköl körül, kaptam egy emlékeztetőt, hogy hamarosan telepítenem kell a Python 3-at.
$ 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.
így tettem, amit bármelyikünk tenne, és googled körül keres egy útmutatót, hogy frissítse a fejlesztési környezet, amely fut a Mac (a macOS operációs rendszer, korábbi nevén OS X)., Meglepetésemre csak egy maroknyi StackOverflow posztot találtam, és részleges megoldásokra mutattak. Itt van a teljes történet arról, hogyan kell beállítani a környezetet anélkül, hogy bármi beépített macOS operációs rendszer.
1. Telepítse pyenv
Moshe Zadka figyelmeztet, hogy ezzel a rossz vezethet megbízhatatlan ötlet, hogy melyik Python fut, amely túl szorosan függ kagyló betöltése álnevek. Tudtam Moshe ismeri Python, de amit nem tudom, hogy ő egy szerző sok Python útmutatók, valamint egy közelgő könyv Python fejlesztés macOS., Segített 40 kollégának a python biztonságos és következetes fejlesztésében a macOS rendszereken egy alapelvet követve:
” az összes Python fejlesztés alapvető előfeltétele, hogy soha ne használja a Python rendszert. Nem szeretné, hogy a Mac OS X “alapértelmezett Python” legyen ” python3.”Azt szeretnénk, hogy soha nem érdekel az alapértelmezett Python.”
Hogyan hagyjuk abba az alapértelmezett gondozást? Moshe ajánlja pyenv kezelésére Python környezetben (egy mélyebb merülés konfigurálása pyenv, lásd ezt a cikket)., Ez az eszköz kezeli több változata Python, le, mint ” egyszerű, diszkrét, követi a Unix hagyomány egycélú eszközök, amelyek egy dolog jól.”
míg más telepítési lehetőségek állnak rendelkezésre, az induláshoz a legegyszerűbb módszer a Homebrew:
$ brew install pyenv
🍺 /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB
telepítse a Python
most telepítse a legújabb Python verziót (3.7.,3 mivel ez az írás):
állítsa be a globális alapértelmezett
most, hogy Python 3 telepítve pyenv, szeretnénk beállítani, mint a globális alapértelmezett verzió pyenv környezetek:
$ pyenv global 3.7.3
# and verify it worked
$ pyenv version
3.7.3 (set by /Users/mbbroberg/.pyenv/version)
a hatalom pyenv származik ellenőrzése alatt a shell ” s utat. Annak érdekében, hogy megfelelően működjön, hozzá kell adnunk a következőket a konfigurációs fájlunkhoz (.zshrc nekem, esetleg .bash_profile az Ön számára):
a parancs után, a dotfile (.zshrc a zsh vagy .,bash_profile a Bash) tartalmaznia kell ezeket a sorokat:
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
most már biztosan tudjuk, hogy mi használ Python 3.7.3 és pip frissíti mellette nélkül kézi aliasing verziók között. Használata Moshe ajánlása, hogy egy verziókezelő (pyenv) lehetővé teszi számunkra, hogy könnyen elfogadja a jövőbeli frissítéseket anélkül, hogy zavaros, hogy melyik Python futunk egy adott időpontban.
siker
ahogy kényelmessé válik ez a munkafolyamat, a pyenv segítségével kezelheti a Python több verzióját. Ez is elengedhetetlen, a függőség kezelése, virtuális környezetben., Megemlítem, hogyan kell használni a beépített venv könyvtárat a cikkben, a Moshe pedig a virtualenvwrapper-t ajánlja virtuális környezetek kezelésére.
megértése Python runtimes
most, hogy már a Python verziók fix, ez biztos, hogy vizsgálja meg, hogy miért ez a probléma összezavarja annyi ember.
a python verziója, amely a macOS-szal szállít, jól elavult attól, amit a Python javasol a fejlesztéshez. Töprengő Python runtimes lehet komikus kihívást időnként, amint azt XKCD.,
sok felhasználónak már több tucat Python tolmács van a számítógépén, de fogalmam sincs, hogyan kell hatékonyan kezelni őket. Túl gyakran, az emberek csak töltse le a legújabb Python kiadás, mozgassa az utat, és hívja a nap (vagy használja brew install python3, ami valami hasonló). Ez megszakításokat okozhat a vonalon frusztráló módon, hogy nehéz lehet a hibaelhárítás.,
mi a teendő
az első ötletem, hogyan lehet Python 3 Az alapértelmezett Python a rendszer volt, hogy mozog a régi verziót, és add hozzá az újat:
a minta követte, amit /usr/bin/ általában nem között fő kiadások Python, de gyorsan megtanultam, hogy ez volt a rossz lépés:
$ sudo mv /usr/bin/python /usr/bin/python2
mv: rename /usr/bin/python to /usr/bin/python2: Operation not permitted
szerencsére a macOS védett meg valamit, amit nem értek teljesen. További kutatások bizonyítják, hogy pontosan ez az, amit nem szabad csinálni.
egy másik dolog, hogy ne próbálja meg
most, hogy tudjuk, mit ne tegyünk, nézzük meg, mit tehetünk., Van néhány lehetőség, amikor a macOS alkalmazásokra vonatkozó közös telepítési mintákra gondolunk.
használja Python 3 a macOS alapértelmezett
Python honlapján van egy macOS Python 3 telepítő tudjuk letölteni és használni. Ha a csomag telepítését használjuk, a python3 kitöltés elérhető lesz a /usr/local/bin/.
Aliasing elengedhetetlen, mivel a python bináris tárolt / usr / bin / nem lehet megváltoztatni. Mi szép egy álnév, hogy ez jellemző a parancssori shell. Mivel én használ zsh alapértelmezés szerint, tettem a következő a .,zshrc fájl:
Ha az alapértelmezett Bash shell, akkor csatolja ugyanazt a szöveget a .bashrc:
Ez a stratégia működik, de ez nem ideális a jövőbeli frissítések Python. Ez azt jelenti, meg kell emlékezni, hogy ellenőrizze a honlapon, és töltse le az új fájlokat, mivel Python nem tartalmaz egy parancssori módon frissíteni.
már Homebrew kezelése Python 3
a Homebrew projekt egy ingyenes, nyílt forráskódú csomagkezelő macOS, hogy sokan támaszkodnak. Ez ad az Apple felhasználók hasonló teljesítmény apt-get vagy yum., Ha Ön Homebrew felhasználó, lehet, hogy már telepítve van a Python. A gyors ellenőrzéshez futtassa:
$ brew list | grep python
python
Ha a Python megjelenik a parancs alatt, akkor telepítve van. Milyen verzió ez? Nézzük meg:
oké, nagyszerű! A Homebrew karbantartói frissítették az alapértelmezett Python palackot, hogy a legújabb kiadásra mutassanak., Mivel a Homebrew fenntartói vagy megbízhatóbb a frissítése a kiadás, mint a legtöbb nekünk, tudjuk használni a Homebrew”s változata Python 3 a következő paranccsal:
Most azt akarjuk, hogy pont az alias (felülről), hogy a másolatot a Python, hogy Pontosan kezeli:
# If you added the previous alias, use a text editor to update the line to the following
alias python=/usr/local/bin/python3
ahhoz, Hogy biztos az út a fenti pontokat, hogy hol Homebrew telepítve van a Python a környezet, tudjuk futtatni sört info python keresni az utat információkat.,
Ez a módszer a Homebrew használatával a Python környezetünk kezelésére jó kiindulási hely, és akkor volt értelme számomra.
mi van, ha még mindig szükségünk van a Python 2-re?
van értelme, hogy bárki új Python kezdeni Python 3., De azok közülünk, akiknek még mindig szükségük van Python 2—például, hogy hozzájáruljon a Python projekt, amely csak a Python 2—továbbra is használhatja az alapértelmezett macOS Python bináris elérhető /usr/bin/python:
$ /usr/bin/python
>>> print("This runtime still works!")
This runtime still works!
Homebrew olyan csodálatos, hogy még kínál egy másik képlet Python 2:
# If you need Homebrew"s Python 2.7 run
$ brew install python@2
idő, tudjuk eltávolítani az álneveket a Shell konfigurációs fájl, hogy menjen vissza az alapértelmezett példányát Python a rendszeren.
ne felejtsük el, hogy frissítse pip pip3!,
a PIP parancs az alapértelmezett csomagkezelő kifejezetten Python csomagok. Bár mi változott az alapértelmezett Python parancsot, hogy 3-as verzió, meg kell alias mi pip parancs külön, ha ez az előző verzió. Először is, meg kell, hogy ellenőrizze, hogy milyen verziót Mi on:
annak biztosítása érdekében, hogy mi csomagok telepítése kompatibilis az új verzió a Python, fogjuk használni egy másik álnév, hogy pont a kompatibilis változata pip. Mivel mi használ Homebrew, mint a csomagkezelő ebben a helyzetben, tudjuk, hogy telepítve pip3 amikor telepítettük Python 3., Az alapértelmezett útvonal ugyanaz, mint a Python 3, de meg tudjuk erősíteni azzal, hogy a shell megtalálni:
$ which pip3
/usr/local/bin/pip3
Most, hogy tudjuk a helyét, mi lesz hozzá, hogy a shell konfigurációs fájl, mint azelőtt:
$ echo "alias pip=/usr/local/bin/pip3" >> ~/.zshrc
# or for Bash
$ echo "alias pip=/usr/local/bin/pip3" >> ~/.bashrc
Utolsó, meg tudjuk erősíteni, hogy a futás pip pontok pip3 megnyitásával egy új shell, vagy visszaállítja az aktuális shell, hogy lássam, mi meg pont, hogy:
# 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
Mi kerülje a Homebrew frissítése pip, de ehhez egy sokkal hosszabb bemutató a dokumentáció a Python.,
csináld jobb a kezdetektől
Ha csak most kezdik el a Python fejlesztés a macOS, nem a szükséges konfigurációkat, hogy megbizonyosodjon arról, hogy a megfelelő verzió a Python a kezdetektől. Telepítése Python 3, vagy anélkül Homebrew, és az alias segítségével elkezd kódolás, de ez nem egy jó stratégia hosszú távon. Használata pyenv, mint egy egyszerű verziókezelő megoldás, hogy ki, hogy egy jó kezdet.
Ez a cikk eredetileg 2019 májusában jelent meg, és a szerkesztő frissítette.