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.