Pyenv – įdiekite kelias „Python“ versijas konkrečiam projektui


Tvarkyti kelias Python versijas Linux sistemoje nėra lengva užduotis, ypač pradedantiesiems. Kartais tai netgi pablogėja, kai norite sukurti ir vykdyti kelis projektus su skirtingomis Python versijomis tame pačiame serveryje. Tačiau taip neturėtų būti, jei naudojate pyenv.

Taip pat skaitykite: kaip įdiegti naujausią Python 3.6 versiją sistemoje Linux

Kas yra Pyenv?

Pyenv yra paprastas, galingas kelių platformų įrankis, skirtas valdyti kelias Python versijas Linux sistemose.

  • Visuotinės Python versijos perjungimas kiekvienam vartotojui.
  • vietinės Python versijos nustatymas kiekvienam projektui.
  • Anaconda arba virtualenv sukurtų virtualių aplinkų valdymas.
  • Python versijos nepaisymas aplinkos kintamuoju.
  • Komandų paieška iš kelių Python versijų ir kt.

Kaip veikia pyenv?

Paprastai visoms programoms paleisti naudojama viena numatytoji Python versija, nebent programoje aiškiai nurodote versiją, kurią norite naudoti. Tačiau pyenv įgyvendina paprastą tarpinių (lengvų vykdomųjų failų) naudojimo koncepciją, kad komanda būtų perduota tinkamai Python versijai, kurią norite naudoti, kai įdiegtos kelios versijos.

Šiuos tarpiklius įterpia pyenv į katalogus priešais jūsų PATH. Taigi, kai paleidžiate Python komandą, ją perima atitinkamas shim ir perduoda pyenv, kuri tada nustato Python versiją, kurią nurodė jūsų programa, ir perduoda jūsų komandas kartu su teisėtu Python diegimu. Tai yra pyenv veikimo apžvalga.

Šiame straipsnyje parodysime, kaip įdiegti naujausią pyenv versiją sistemoje Linux. Taip pat parodysime pirmuosius tris pirmiau išvardytus naudojimo atvejus.

Kaip įdiegti „Pyenv“ sistemoje „Linux“.

1. Pirmiausia įdiekite visus reikalingus paketus, kad galėtumėte įdiegti skirtingas Python versijas iš šaltinių, naudodami šią komandą atitinkamame Linux paskirstyme.

------------ 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. Tada paimkite naujausią pyenv šaltinio medį iš jo „Github“ saugyklos ir įdiekite jį $HOME/.pyenv kelyje naudodami šią komandą.

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

3. Dabar turite nustatyti aplinkos kintamąjį PYENV_ROOT, kad jis nurodytų kelią, kuriame įdiegėte pyenv, ir jį eksportuoti. Tada pridėkite $PYENV_ROOT/bin prie savo PATH, kad paleistumėte pyenv komandų eilutės įrankį, kaip ir visas kitas sistemos komandas.

Taip pat turite įgalinti tarpiklius ir automatinį užbaigimą, prie apvalkalo pridėdami pyenv init. Atlikite visus šiuos veiksmus $HOME/.bashrc bash paleisties faile, kaip parodyta.

vim $HOME/.bashrc 

Nukopijuokite ir įklijuokite šias eilutes šio failo pabaigoje.

## 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. Atlikę anksčiau nurodytus pakeitimus, galite gauti $HOME/.bashrc failą arba iš naujo paleisti apvalkalą, kaip parodyta.

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

Kaip įdiegti kelias Python versijas Linux

5. Šiuo metu turėtumėte būti pasirengę pradėti naudoti pyenv. Prieš diegdami bet kurią Python versiją, naudodami šią komandą galite peržiūrėti visas galimas versijas.


pyenv install -l

6. Dabar galite įdiegti kelias Python versijas, pavyzdžiui, naudodami pyenv.

pyenv install 3.6.4
pyenv install 3.6.5

7. Norėdami išvardyti visas Python versijas, pasiekiamas pyenv, paleiskite šią komandą. Bus rodomos tik versijos, įdiegtos per patį pyenv.

pyenv versions

8. Galite patikrinti visuotinę „Python“ versiją naudodami šią komandą. Iki to laiko numatytoji versija turėtų būti ta, kurią nustatė sistema, o ne pyenv.

pyenv global

Visuotinę python versiją galite nustatyti naudodami komandą pyenv.

pyenv global 3.6.5
pyenv global

9. Dabar galite nustatyti vietinę Python versiją kiekvienam projektui, pavyzdžiui, jei turite projektą $HOME/python_projects/test, galite nustatyti jos Python versija naudojant šią komandą.

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

10. „Pyenv“ valdo virtualias aplinkas naudodamas pyenv-virtualenv papildinį, kuris automatizuoja virtualenvs ir conda aplinkų, skirtų Python, valdymą Linux ir kitose į UNIX panašiose sistemose.

Galite pradėti diegdami šį papildinį naudodami šias komandas.

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

11. Dabar mes sukursime bandomąją virtualią aplinką, pavadintą venv_project1 pagal projektą, pavadintą project1, kaip nurodyta toliau.

cd python_projects
mkdir project1
cd project1
pyenv virtualenv 3.6.5 venv_project1

12. Dabar, kai pateikiate visas „Python“ versijas, jūsų virtualios aplinkos ir vietinės „Python“ versijos taip pat turėtų būti pateiktos, kaip parodyta ekrano kopijoje.

pyenv versions

13. Norėdami suaktyvinti virtualenv, pvz., venv_project1, įveskite šią komandą.

pyenv activate venv_project1

Pastaba: pirmą kartą naudodami naujausią pyenv-virtualenv papildinio versiją galite gauti toliau pateiktą pranešimą.

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

Pridėkite eilutę eksportuoti PYENV_VIRTUALENV_DISABLE_PROMPT=1 į failą $HOME/.bashrc, kur pridėjote kitų pyenv konfigūracijų, ir gaukite failą, kad galėtumėte imituoti. akcentuojamas elgesys.

14. Norėdami išjungti suaktyvintą virtualenv, paleiskite šią komandą.

pyenv deactivate

Norėdami gauti daugiau informacijos, galite išvardyti visas pyenv komandas naudodami šią komandą.

pyenv commands

Norėdami gauti daugiau informacijos, eikite į pyenv Github saugyklą: https://github.com/pyenv/pyenv

Taip pat skaitykite: kaip įdiegti kelias PHP versijas kelioms svetainėms

Naudoti pyenv tikrai taip paprasta. Šiame vadove mes parodėme, kaip jį įdiegti, taip pat pademonstravome kai kuriuos jo naudojimo atvejus, kai galima valdyti kelias python versijas Linux sistemoje. Naudokite toliau pateiktą atsiliepimų formą, jei norite užduoti klausimų arba pasidalinti mintimis apie šį įrankį.