Pyenv - installige konkreetse projekti jaoks mitu Pythoni versiooni


Pythoni mitme versiooni haldamine Linuxi süsteemis ei ole lihtne ülesanne, eriti algajatele. Mõnikord muutub see veelgi hullemaks, kui soovite arendada ja käivitada mitu serverit koos erinevate Pythoni versioonidega. See ei tohiks aga nii olla, kui kasutate pyenv'i.

Pyenv on lihtne, võimas ja platvormidevaheline tööriist mitme Pythoni versiooni haldamiseks Linuxi süsteemides, mida varem kasutati.

  • Ülemaailmse Pythoni versiooni vahetamine kasutaja kohta.
  • kohaliku Pythoni versiooni määramine projektipõhiselt.
  • Anaconda või virtualenv loodud virtuaalsete keskkondade haldamine.
  • Pythoni versiooni alistamine keskkonnamuutujaga.
  • Käskude otsimine Pythoni mitmest versioonist ja muust.

Tavaliselt kasutatakse kõigi teie rakenduste käitamiseks Pythoni ühte vaikeversiooni, välja arvatud juhul, kui olete selgesõnaliselt määranud versiooni, mida soovite rakenduses kasutada. Kuid pyenv rakendab lihtsat kontseptsiooni shim-ide (kergete käivitatavate failide) kasutamiseks, et anda teie käsk õigele Pythoni versioonile, mida soovite kasutada, kui teil on mitu versiooni installitud.

Need aluspinnad lisab pyenv kataloogi, mis asub teie PATHi ees. Nii et kui käivitate Pythoni käsu, siis saab see vastavate vahekaugustega kinni ja edastatakse pyenv-le, mis loob seejärel teie rakenduse määratud Pythoni versiooni ja edastab teie käsud õigele Pythoni installile. See on ülevaade pyenvi toimimisest.

Selles artiklis näitame, kuidas installida pyenv uusim versioon Linuxi. Samuti demonstreerime ülaltoodud kolme esimest kasutamisjuhtu.

Kuidas installida Pyenv Linuxi

1. Kõigepealt installige kõik vajalikud paketid erinevate Pythoni versioonide installimiseks allikatest, kasutades järgmist käsku teie vastavas Linuxi jaotuses.

------------ 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. Järgmisena haarake uusim pyenv lähtekood oma Githubi hoidlast ja installige see järgmise käsu abil teele $HOME/.pyenv .

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

3. Nüüd peate määrama keskkonnamuutuja PYENV_ROOT osutama teele, kuhu installisite pyenv, ja eksportima selle. Seejärel lisage oma teele $PYENV_ROOT/bin, et käivitada pyenv käsurea utiliit nagu kõik muud süsteemi käsud.

Samuti peate lubama shim-id ja automaatse täitmise, lisades oma shellile pyenv-init. Tehke kõik need asjad oma käivitusfailis $HOME/.bashrc bash, nagu näidatud.

$ vim $HOME/.bashrc 

Kopeerige ja kleepige selle faili lõppu järgmised read.

## 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. Kui olete teinud ülaltoodud muudatused, võite hankida faili $HOME/.bashrc või taaskäivitada kest, nagu näidatud.

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

Kuidas installida Linuxi mitu Pythoni versiooni

5. Siinkohal peaksite olema valmis pyenvi kasutama hakkama. Enne mis tahes Pythoni versiooni installimist saate selle käsuga vaadata kõiki saadaolevaid versioone.

$ pyenv install -l

6. Nüüd saate näiteks Pyyenvi kaudu installida mitu Pythoni versiooni.

$ pyenv install 3.6.4
$ pyenv install 3.6.5

7. Kõigi Pyyenile saadaolevate Pythoni versioonide loetlemiseks käivitage järgmine käsk. See näitab ainult versioone, mis on installitud pyenvi enda kaudu.

$ pyenv versions

8. Pythoni üldist versiooni saate kontrollida järgmise käsuga, selleks ajaks peaks vaikeversioon olema süsteemi määratud, mitte pyenv.

$ pyenv global

Ülemaailmse pythoni versiooni saate määrata käsu pyenv abil.

$ pyenv global 3.6.5
$ pyenv global

9. Nüüd saate kohaliku Pythoni versiooni määrata projektipõhiselt, näiteks kui teil on projekt asukohas $HOME/python_projects/test, saate selle Pythoni versiooni seadistada järgmise käsu abil.

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

10. Pyenv haldab virtuaalkeskkondi pistikprogrammi pyenv-virtualenv kaudu, mis automatiseerib Pythoni virtuaalsete ja kondakeskkondade haldamist Linuxis ja muudes UNIX-i sarnastes süsteemides.

Võite alustada selle pistikprogrammi installimisega järgmiste käskude abil.

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

11. Nüüd loome projekti nimega projekt1 testitava virtuaalse keskkonna nimega venv_project1 järgmiselt.

$ cd python_projects
$ mkdir project1
$ cd project1
$ pyenv virtualenv 3.6.5 venv_project1

12. Kui loete kõik Pythoni versioonid, tuleks loetleda ka teie virtuaalsed keskkonnad ning nende kohalikud pythoni versioonid, nagu ekraanipildil näidatud.

$ pyenv versions

13. Virtuaali (nt venv_project1) aktiveerimiseks tippige järgmine käsk.

$ pyenv activate venv_project1

Märkus. Allpool oleva teate võidakse saada pyenv-virtualenv plugina uusima versiooni esmakordsel kasutamisel.

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

Lisage rida eksport PYENV_VIRTUALENV_DISABLE_PROMPT = 1 oma faili $HOME/.bashrc, kuhu lisasite muud pyenv-konfiguratsioonid, ja hankige fail allikast rõhutatava käitumise simuleerimiseks.

14. Aktiveeritud virtualenv deaktiveerimiseks käivitage see käsk.

$ pyenv deactivate

Lisateabe saamiseks saate kõik pyenv-käsud loetleda järgmise käsu abil.

$ pyenv commands

Lisateabe saamiseks minge pyenv Githubi hoidlasse: https://github.com/pyenv/pyenv

Pyenvi kasutamine on tegelikult nii lihtne. Selles juhendis näitasime, kuidas seda installida, samuti demonstreerisime mõningaid selle kasutamise juhtumeid mitme pythoni versiooni haldamiseks Linuxi süsteemis. Selle tööriista kohta küsimuste esitamiseks või mõtete jagamiseks kasutage allolevat tagasiside vormi.