Introducere în Pyenv pentru utilizatorii de Linux
- 3 minute de citit
- 3 exemple de cod
- 10 imagini
Disponibil și în English
Pe această pagină
Salut,
În acest articol vă voi prezenta pyenv, un instrument pentru gestionarea mediilor Python.
Instalarea pyenv este destul de simplă: trebuie să clonați repository-ul și să adăugați binarele în PATH.
Pentru o distribuție tip Debian care folosește shell-ul Zsh, instrucțiunile sunt următoarele:
git clone https://github.com/pyenv/pyenv.git ~/.pyenvecho 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrcApoi, pentru ca modificările să intre în vigoare, trebuie să reîncărcați shell-ul cu: source ~/.zshrc, sau pur și simplu să reporniți terminalul. 😀
Pentru instrucțiunile complete de instalare și completarea automată în shell, consultați: Installation
Noțiuni de bază
Deși asta este suficient pentru a folosi Pyenv, îmi place să instalez și pluginul pyenv-virtualenv, pentru a-mi gestiona mediile virtuale Python. Vă rugăm să consultați Installation Instructions.
Notă: dacă folosiți Zsh, puteți adăuga pyenv la pluginurile din .zshrc pentru a avea autocompletare pentru comenzi; astfel se încarcă și pyenv-virtualenv.
Pentru a lista toate versiunile Python disponibile, putem rula:
➜ ~ pyenv install -lAvailable versions:...3.8.03.8-dev3.8.13.8.23.8.33.9.0a63.9-dev3.10-devÎnainte de a instala una dintre ele, trebuie să descărcăm toate dependențele Python pentru sistemul nostru; dacă nu facem asta, compilarea Python va eșua cel mai probabil.
Pentru o distribuție Linux de tip Debian, următoarea comandă ar trebui să funcționeze:
sudo apt-get update; sudo apt-get install --no-install-recommends make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-devPentru alte distribuții și pentru macOS, consultați: Suggested build environment
Când toate dependențele sunt îndeplinite, putem instala versiunea Python dorită cu: pyenv install 3.9-dev sau orice altă versiune Python.
Putem lista versiunile Python instalate cu: pyenv versions.
Am instalat anterior python-3.8.3 și am creat un mediu virtual din el. Voi explica asta mai târziu.
Pentru a folosi versiunea Python nou instalată, avem două opțiuni:
- Să o folosim global: pyenv global 3.9-dev
- Să o folosim local: pyenv local 3.9-dev
Utilizarea globală înseamnă că pyenv va folosi o „magie” de bash. Când scrieți python, se va folosi versiunea Python configurată, dacă și numai dacă nu există o versiune locală configurată.
Versiunile locale sunt configurate pe fiecare director în parte, ceea ce înseamnă că dacă vă aflați în directorul rădăcină al unui proiect și setați versiunea 3.9-dev, atunci când scrieți python în directorul rădăcină al proiectului sau în subdirectoarele sale, se va folosi versiunea locală (3.9-dev) în locul celei globale.
De exemplu:
Pentru a afla versiunea globală/locală, folosiți pyenv global (sau local) fără argumente. Pentru a elimina versiunea locală, folosiți pyenv local –unset.
Ce am învățat până acum este că putem folosi, fără griji, oricare versiune Python una lângă alta, fără a ne strica sistemul, și putem comuta între ele folosind o comandă simplă.
Pyenv este, de asemenea, extrem de generos, deoarece putem alege dintre 425 de versiuni Python, toate putând fi instalate cu o singură comandă.
➜ pyenv pyenv install -l | wc -l
425
Puteți alege, de asemenea, să rulați două versiuni Python globale în același timp; acest lucru este util când aveți nevoie de instrumente scrise în Python, distribuite ca pachete pip. Un instrument la care mă pot gândi este docker-compose.
Acest lucru oferă o flexibilitate mare.
Medii virtuale
O problemă care apare când lucrezi ca dezvoltator Python este că, adesea, lucrezi la mai multe proiecte în același timp.
Putem folosi python 3.8.3 pentru două proiecte, dar dacă un proiect necesită un pachet MongoDB mai vechi, iar un altul necesită pachetul mai nou pentru a funcționa, avem o problemă, deoarece nu putem avea două versiuni instalate în același timp.
Aici intervin mediile virtuale și pluginul pyenv-virtual.
Putem crea cu ușurință un mediu virtual nou cu următoarea comandă; primul argument este „părintele”, iar al doilea argument este numele mediului virtual.
pyenv virtualenv 3.9-dev experimental-3.9-dev
Apoi putem folosi mediul virtual local cu:
pyenv local experimental-3.9-dev
Dacă nu mai avem nevoie de o versiune, o putem dezinstala cu o singură comandă:
pyenv uninstall experimental-3.9-dev
Înainte de a încheia acest articol, vreau să vă arăt cum se folosește o versiune Python din pyenv în Pycharm.
La crearea unui proiect nou: Project -> Pure Python -> Virtual Environment -> Click pe puncte -> Virtualenv Environment -> Click pe puncte -> Căutați versiunea pyenv, de obicei în: /home/user/.pyenv/versions -> Selectați /bin/python și apăsați Ok 🙂
Pentru un proiect existent, apăsați SHIFT de două ori și scrieți Python Interpreter.
Gata! Sper că v-a plăcut acest articol.