Pyenv - Installa Verżjonijiet Multipli ta' Python għal Proġett Speċifiku


Il-ġestjoni ta 'verżjonijiet multipli ta' Python fuq sistema Linux mhix biċċa xogħol faċli, speċjalment għal dawk li jibdew. Xi drabi saħansitra tmur għall-agħar meta trid tiżviluppa u tmexxi proġetti multipli b'verżjonijiet differenti ta 'Python fuq l-istess server. Madankollu, dan m'għandux ikun il-każ jekk timpjega pyenv.

Pyenv hija għodda sempliċi, qawwija u multi-pjattaforma għall-ġestjoni ta 'verżjonijiet multipli Python fuq sistemi Linux, li jintużaw għal.

  • Naqleb il-verżjoni globali ta' Python fuq bażi ta' kull utent.
  • l-issettjar tal-verżjoni lokali ta' Python fuq bażi ta' kull proġett.
  • Ġestjoni ta' ambjenti virtwali maħluqa minn anaconda jew virtualenv.
  • Twarrab il-verżjoni Python b'varjabbli ambjentali.
  • Tfittix ta' kmandi minn verżjonijiet multipli ta' Python u aktar.

Normalment, verżjoni default waħda ta 'Python tintuża biex tmexxi l-applikazzjonijiet kollha tiegħek, sakemm ma tispeċifikax b'mod espliċitu l-verżjoni li trid tuża fl-applikazzjoni. Iżda pyenv jimplimenta kunċett sempliċi li juża shims (eżekutibbli ħfief) biex jgħaddi l-kmand tiegħek għall-verżjoni Python korretta li trid tuża, meta jkollok verżjonijiet multipli installati.

Dawn is-shims jiddaħħlu minn pyenv f'direttorji quddiem il-PATH tiegħek. Allura meta tmexxi kmand Python, jiġi interċettat mill-shim xieraq u mgħoddi lil pyenv, li mbagħad jistabbilixxi l-verżjoni Python li ġiet speċifikata mill-applikazzjoni tiegħek, u jgħaddi l-kmandi tiegħek flimkien mal-installazzjoni leġittima ta 'Python. Din hija ħarsa ġenerali lejn kif jopera pyenv.

F'dan l-artikolu, ser nuru kif tinstalla l-aħħar verżjoni ta 'pyenv fil-Linux. Aħna se nuru wkoll l-ewwel tliet użi każ elenkati hawn fuq.

Kif Tinstalla Pyenv fil-Linux

1. L-ewwel installa l-pakketti kollha meħtieġa għall-installazzjoni ta 'verżjonijiet differenti ta' Python minn sorsi billi tuża l-kmand li ġej fuq id-distribuzzjoni Linux rispettiva tiegħek.

------------ 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. Sussegwentement, aqbad l-aħħar siġra tas-sors tal-pyenv mir-repożitorju Github tagħha u installaha fil-mogħdija $HOME/.pyenv billi tuża l-kmand li ġej.

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

3. Issa għandek bżonn tissettja l-varjabbli ambjentali PYENV_ROOT biex tipponta lejn il-mogħdija fejn installajt pyenv u tesportaha. Imbagħad żid $PYENV_ROOT/bin mal-PATH tiegħek biex tħaddem l-utilità tal-linja tal-kmand tal-pyenv bħal kwalunkwe kmandi tas-sistema oħra.

Għandek bżonn ukoll li tippermetti shims kif ukoll awtokompletazzjoni billi żżid il-pyenv init mal-qoxra tiegħek. Agħmel dawn l-affarijiet kollha fil-fajl tal-istartjar tiegħek $HOME/.bashrc bash, kif muri.

$ vim $HOME/.bashrc 

Ikkopja u waħħal il-linji li ġejjin fl-aħħar ta 'dan il-fajl.

## 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. Ladarba tkun għamilt il-bidliet ta 'hawn fuq, tista' jew sors $HOME/.bashrc fajl jew terġa 'tibda l-qoxra kif muri.

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

Kif Tinstalla Verżjonijiet multipli ta 'Python fil-Linux

5. F'dan il-punt, għandek tkun lest biex tibda tuża pyenv. Qabel ma tinstalla kwalunkwe verżjoni ta 'Python, tista' tara l-verżjonijiet kollha disponibbli b'dan il-kmand.

$ pyenv install -l

6. Issa tista 'tinstalla verżjoni Python multipla permezz ta' pyenv, pereżempju.

$ pyenv install 3.6.4
$ pyenv install 3.6.5

7. Biex telenka l-verżjonijiet Python kollha disponibbli għal pyenv, mexxi l-kmand li ġej. Dan se juri biss verżjonijiet installati permezz tal-pyenv innifsu.

$ pyenv versions

8. Tista 'tiċċekkja l-verżjoni globali ta' Python bil-kmand li ġej, sa dan iż-żmien, il-verżjoni default għandha tkun dik stabbilita mis-sistema, mhux pyenv.

$ pyenv global

Tista' tissettja l-verżjoni globali tal-python billi tuża l-kmand pyenv.

$ pyenv global 3.6.5
$ pyenv global

9. Issa tista 'tissettja l-verżjoni Python lokali fuq bażi ta' kull proġett, pereżempju, jekk għandek proġett li jinsab f'$HOME/python_projects/test, tista 'tissettja l-verżjoni Python tagħha billi tuża l-kmand li ġej.

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

10. Pyenv jimmaniġġja ambjenti virtwali permezz tal-plugin pyenv-virtualenv li awtomatizza l-ġestjoni ta 'virtualenvs u ambjenti conda għal Python fuq Linux u sistemi oħra bħal UNIX.

Tista 'tibda billi tinstalla dan il-plugin billi tuża l-kmandi li ġejjin.

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

11. Issa se noħolqu ambjent virtwali tat-test imsejjaħ venv_project1 taħt proġett imsejjaħ project1 kif ġej.

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

12. Issa meta telenka l-verżjonijiet kollha ta 'Python, l-ambjenti virtwali tiegħek kif ukoll il-verżjonijiet lokali ta' python tagħhom għandhom jiġu elenkati wkoll, kif muri fil-screenshot.

$ pyenv versions

13. Biex tattiva virtualenv, pereżempju venv_project1, ittajpja l-kmand li ġej.

$ pyenv activate venv_project1

Nota: Tista' tirċievi l-messaġġ hawn taħt waqt li tuża l-aħħar verżjoni tal-plugin pyenv-virtualenv għall-ewwel darba.

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

Żid l-esportazzjoni tal-linja PYENV_VIRTUALENV_DISABLE_PROMPT=1 fil-fajl $HOME/.bashrc tiegħek, fejn żidt konfigurazzjonijiet pyenv oħra, u jġib il-fajl biex jissimula l-imġieba li qed tiġi enfasizzata.

14. Biex tiddiżattiva l-virtualenv attivat, mexxi dan il-kmand.

$ pyenv deactivate

Għal aktar informazzjoni, tista' telenka l-kmandi pyenv kollha billi tuża l-kmand li ġej.

$ pyenv commands

Għal aktar informazzjoni, mur fir-repożitorju tal-pyenv Github: https://github.com/pyenv/pyenv

L-użu ta 'pyenv huwa verament daqshekk sempliċi. F'din il-gwida, urejna kif tinstallaha, kif ukoll wrejna xi wħud mill-każijiet ta 'użu tagħha għall-ġestjoni ta' verżjonijiet multipli ta 'python fuq sistema Linux. Uża l-formola ta' feedback hawn taħt biex tistaqsi kwalunkwe mistoqsija jew taqsam il-ħsibijiet tiegħek dwar din l-għodda.