Pyenv - Specörite taslama üçin birnäçe Python wersiýasyny guruň


Linux ulgamynda Python-yň birnäçe wersiýasyny dolandyrmak, esasanam täze başlanlar üçin aňsat iş däl. Käwagt bir serwerde dürli Python wersiýalary bilen birnäçe taslamany işläp düzmek we işletmek isleseňiz hasam erbetleşýär. Şeýle-de bolsa, pyenv ulanýan bolsaňyz beýle bolmaz.

Pyenv, Linux ulgamlarynda köp ulanylýan Python wersiýalaryny dolandyrmak üçin ýönekeý, güýçli we platforma guralydyr.

  • Global Python wersiýasyny ulanyjy başyna geçirmek.
  • ýerli Python wersiýasyny taslama esasynda düzmek.
  • Anakonda ýa-da virtualenv tarapyndan döredilen wirtual gurşawy dolandyrmak.
  • Python wersiýasyny daşky gurşaw üýtgeýjisi bilen ýok etmek.
  • Python we başga-da birnäçe wersiýadan buýruklary gözlemek.

Adatça, programmanyň içinde ulanmak isleýän wersiýaňyzy aç-açan görkezmeseňiz, ähli programmalaryňyzy işletmek üçin Python-yň ýekeje wersiýasy ulanylýar. Yöne pyenv, birnäçe wersiýa gurlanda, buýrugy ulanmak isleýän dogry Python wersiýaňyza tabşyrmak üçin köýnekleri (ýeňil ýerine ýetirip bolýanlary) ulanmagyň ýönekeý düşünjesini durmuşa geçirýär.

Bu köýnekler, pyenv tarapyndan PATH-yň öňündäki kataloglara salynýar. Şeýlelik bilen, “Python” buýrugyny işledeniňizde, degişli ýalpyldawuklyk bilen saklanýar we “pyenv” -e geçýär, soňra bolsa programmaňyz tarapyndan kesgitlenen Python wersiýasyny döredýär we buýruklaryňyzy dogry Python gurnamasyna geçirýär. Bu, piýenwiň işleýşine syn.

Bu makalada Linux-da pyenv-iň iň soňky wersiýasyny nädip gurmalydygyny görkezeris. Şeýle hem ýokarda sanalan ilkinji üç ulanylyş ýagdaýyny görkezeris.

Linux-da Pyenv-i nädip gurmaly

1. Ilki bilen degişli Linux paýlanyşyňyzda aşakdaky buýrugy ulanyp, çeşmelerden dürli Python wersiýalaryny gurmak üçin zerur ähli paketleri guruň.

------------ 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. Ondan soň, Github ammaryndan iň soňky pyenv çeşme agajyny alyň we aşakdaky buýrugy ulanyp $HOME/.pyenv ýoluna guruň.

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

3. Indi pyenv guran ýoluňyzy görkezmek we eksport etmek üçin daşky gurşaw üýtgeýjisini PYENV_ROOT bellemeli. Soňra beýleki ulgam buýruklary ýaly pyenv buýruk setiri kömekçi programmasyny işletmek üçin PATH-a $PYENV_ROOT/bin goşuň.

Şeýle hem, gabyňyza pyenv initini goşup, köýnekleri we awtomatiki usulda işlemeli. Bularyň hemmesini görkezilişi ýaly $HOME/.bashrc baş başlangyç faýlyňyzda ýerine ýetiriň.

$ vim $HOME/.bashrc 

Aşakdaky setirleri şu faýlyň soňuna göçüriň.

## 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. aboveokardaky üýtgeşmeleri girizeniňizden soň, $HOME/.bashrc faýlyny çeşme edip bilersiňiz ýa-da görkezilişi ýaly gabygyny täzeden açyp bilersiňiz.

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

Linux-da birnäçe Python wersiýasyny nädip gurmaly

5. Bu pursatda, pyenv ulanyp başlamaga taýyn bolmaly. Islendik Python wersiýasyny gurmazdan ozal, bu buýruk bilen bar bolan wersiýalary görüp bilersiňiz.

$ pyenv install -l

6. Indi pyenv arkaly birnäçe Python wersiýasyny gurup bilersiňiz.

$ pyenv install 3.6.4
$ pyenv install 3.6.5

7. Pyenv-de bar bolan Python wersiýalarynyň hemmesini sanamak üçin aşakdaky buýrugy işlediň. Bu diňe pyenwiň üsti bilen gurlan wersiýalary görkezer.

$ pyenv versions

8. Global Python wersiýasyny aşakdaky buýruk bilen barlap bilersiňiz, bu wagta çenli deslapky wersiýa pyenv däl-de, ulgam tarapyndan düzülen bolmaly.

$ pyenv global

Pyenv buýrugyny ulanyp, global python wersiýasyny düzüp bilersiňiz.

$ pyenv global 3.6.5
$ pyenv global

9. Indi ýerli Python wersiýasyny taslama boýunça düzüp bilersiňiz, mysal üçin, $HOME/python_projects/testde ýerleşýän taslamaňyz bar bolsa, Python wersiýasyny aşakdaky buýruk bilen sazlap bilersiňiz.

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

10. Pyenv, Linux we beýleki UNIX meňzeş ulgamlarda Python üçin wirtual we konda gurşawyny dolandyrmagy awtomatlaşdyrýan pyenv-virtualenv plugin arkaly wirtual gurşawy dolandyrýar.

Aşakdaky buýruklary ulanyp, bu plagini gurmak bilen başlap bilersiňiz.

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

11. Indi aşakdaky ýaly project1 atly taslama boýunça venv_project1 atly synag wirtual gurşawyny dörederis.

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

12. Indi ähli Python wersiýalaryny sanasaňyz, skrinshotda görkezilişi ýaly wirtual gurşawyňyz we ýerli piton wersiýalary hem sanawda görkezilmelidir.

$ pyenv versions

13. Wirtualenwi işjeňleşdirmek üçin, mysal üçin venv_project1, aşakdaky buýrugy ýazyň.

$ pyenv activate venv_project1

Bellik: Pyenv-virtualenv plugininiň iň soňky wersiýasyny ilkinji gezek ulananyňyzda aşakdaky habary alyp bilersiňiz.

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

Çyzyk eksportyny PYENV_VIRTUALENV_DISABLE_PROMPT=1 goşuň, $HOME/.bashrc faýlyňyza, beýleki pyenv sazlaýjylaryny goşduňyz we nygtalýan özüni alyp barşyny simulirlemek üçin faýly çeşmä goşuň.

14. Işledilen virtualenv-i öçürmek üçin bu buýrugy işlediň.

$ pyenv deactivate

Has giňişleýin maglumat üçin aşakdaky buýrugy ulanyp, ähli pyenv buýruklaryny sanap bilersiňiz.

$ pyenv commands

Has giňişleýin maglumat üçin pyenv Github ammaryna gidiň: https://github.com/pyenv/pyenv

Pyenv ulanmak hakykatdanam ýönekeý. Bu gollanmada, ony nädip gurmalydygyny görkezdik, şeýle hem Linux ulgamynda birnäçe piton wersiýasyny dolandyrmak üçin ulanylyşynyň käbirini görkezdik. Islendik sorag bermek ýa-da bu gural hakda pikirleriňizi paýlaşmak üçin aşakdaky seslenme formasyny ulanyň.