Pyenv - Instalați mai multe versiuni Python pentru un anumit proiect


Gestionarea mai multor versiuni de Python pe un sistem Linux nu este o sarcină ușoară, mai ales pentru începători. Uneori, chiar se înrăutățește atunci când doriți să dezvoltați și să rulați mai multe proiecte cu diferite versiuni Python pe același server. Cu toate acestea, acest lucru nu ar trebui să fie cazul dacă angajați pyenv.

Citiți și: Cum se instalează cea mai recentă versiune Python 3.6 în Linux

Ce este Pyenv?

Pyenv este un instrument simplu, puternic și multiplatform pentru gestionarea mai multor versiuni Python pe sistemele Linux, care este folosit pentru.

  • Schimbarea versiunii globale Python pe o bază de utilizator.
  • setarea versiunii locale Python pe bază de proiect.
  • Gestionarea mediilor virtuale create de anaconda sau virtualenv.
  • Suprascrierea versiunii Python cu o variabilă de mediu.
  • Căutarea comenzilor din mai multe versiuni de Python și multe altele.

Cum funcționează pyenv?

De obicei, o singură versiune implicită de Python este utilizată pentru a rula toate aplicațiile, cu excepția cazului în care specificați în mod explicit versiunea pe care doriți să o utilizați în cadrul aplicației. Dar pyenv implementează un concept simplu de utilizare a shims (executabile ușoare) pentru a vă transmite comanda versiunii Python corecte pe care doriți să o utilizați, atunci când aveți mai multe versiuni instalate.

Aceste shims sunt inserate de pyenv într-un directoare din fața CALEI. Deci, atunci când rulați o comandă Python, aceasta este interceptată de shim adecvată și transmisă la pyenv, care apoi stabilește versiunea Python care a fost specificată de aplicația dvs. și trece comenzile dvs. împreună cu instalarea corectă a Python. Aceasta este o prezentare generală a modului în care funcționează pyenv.

În acest articol, vom arăta cum să instalați cea mai recentă versiune de pyenv în Linux. Vom demonstra, de asemenea, primele trei cazuri de utilizare enumerate mai sus.

Cum se instalează Pyenv în Linux

1. Mai întâi instalați toate pachetele necesare pentru instalarea diferitelor versiuni Python din surse folosind următoarea comandă pe distribuția dvs. Linux respectivă.

------------ On Debian/Ubuntu/Linux Mint ------------ 
sudo apt install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev

------------ On CentOS/RHEL ------------
yum -y install epel-release
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

------------ On Fedora 22+ ------------
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

2. Apoi, luați cel mai recent arbore sursă pyenv din depozitul său Github și instalați-l în calea $HOME/.pyenv folosind următoarea comandă.

git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv

3. Acum trebuie să setați variabila de mediu PYENV_ROOT să indice calea în care ați instalat pyenv și să o exportați. Apoi adăugați $PYENV_ROOT/bin la PATH pentru a rula utilitarul de linie de comandă pyenv ca orice alte comenzi de sistem.

De asemenea, trebuie să activați shims precum și completarea automată adăugând pyenv init în shell. Faceți toate aceste lucruri în fișierul dvs. de pornire $HOME/.bashrc bash, așa cum se arată.

vim $HOME/.bashrc 

Copiați și lipiți următoarele rânduri la sfârșitul acestui fișier.

## pyenv configs
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

4. Odată ce ați făcut modificările de mai sus, puteți fie sursa fișierului $HOME/.bashrc, fie reporniți shell-ul așa cum se arată.

source $HOME/.bashrc
OR
exec "$SHELL"

Cum se instalează mai multe versiuni Python în Linux

5. În acest moment, ar trebui să fiți gata să începeți să utilizați pyenv. Înainte de a instala orice versiune Python, puteți vizualiza toate versiunile disponibile cu această comandă.


pyenv install -l

6. Acum puteți instala mai multe versiuni Python prin pyenv, de exemplu.

pyenv install 3.6.4
pyenv install 3.6.5

7. Pentru a lista toate versiunile Python disponibile pentru pyenv, executați următoarea comandă. Aceasta va afișa numai versiunile instalate chiar prin pyenv.

pyenv versions

8. Puteți verifica versiunea globală Python cu următoarea comandă, până la acest moment, versiunea implicită ar trebui să fie cea setată de sistem, nu pyenv.

pyenv global

Puteți seta versiunea globală python utilizând comanda pyenv.

pyenv global 3.6.5
pyenv global

9. Acum puteți seta versiunea locală Python pe bază de proiect, de exemplu, dacă aveți un proiect situat în $HOME/python_projects/test, puteți seta versiunea Python a acesteia folosind următoarea comandă.

cd python_projects/test
pyenv local 3.6.5
pyenv version		#view local python version for a specific project 
OR
pyenv versions

10. Pyenv gestionează mediile virtuale prin intermediul plugin-ului pyenv-virtualenv care automatizează gestionarea mediilor virtualenvs și conda pentru Python pe Linux și alte sisteme asemănătoare UNIX.

Puteți începe prin a instala acest plugin folosind următoarele comenzi.

git clone https://github.com/yyuu/pyenv-virtualenv.git   $HOME/.pyenv/plugins/pyenv-virtualenv
source $HOME/.bashrc

11. Acum vom crea un mediu virtual de testare numit venv_project1 în cadrul unui proiect numit project1, după cum urmează.

cd python_projects
mkdir project1
cd project1
pyenv virtualenv 3.6.5 venv_project1

12. Acum, când enumerați toate versiunile Python, mediile dvs. virtuale, precum și versiunile lor locale Python ar trebui să fie de asemenea enumerate, așa cum se arată în captură de ecran.

pyenv versions

13. Pentru a activa un virtualenv, de exemplu venv_project1, tastați următoarea comandă.

pyenv activate venv_project1

Notă: este posibil să primiți mesajul de mai jos când utilizați cea mai recentă versiune a pluginului pyenv-virtualenv pentru prima dată.

pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.

Adăugați linia export PYENV_VIRTUALENV_DISABLE_PROMPT=1 în fișierul dvs. $HOME/.bashrc, unde ați adăugat alte configurații Pyenv și sursați fișierul pentru a simula comportamentul fiind accentuat.

14. Pentru a dezactiva virtualenv activat, rulați această comandă.

pyenv deactivate

Pentru mai multe informații, puteți lista toate comenzile pyenv folosind următoarea comandă.

pyenv commands

Pentru mai multe informații, accesați depozitul pyenv Github: https://github.com/pyenv/pyenv

Citiți și: Cum să instalați mai multe versiuni PHP pentru mai multe site-uri web

Utilizarea pyenv este într-adevăr atât de simplă. În acest ghid, am arătat cum să-l instalăm, precum și câteva dintre cazurile sale de utilizare pentru gestionarea mai multor versiuni Python pe un sistem Linux. Utilizați formularul de feedback de mai jos pentru a pune întrebări sau pentru a vă împărtăși părerile despre acest instrument.