Pyenv - Pag-instalar sa Daghang Bersyon sa Python alang sa Piho nga Proyekto


Ang pagdumala sa daghang mga bersyon sa Python sa usa ka sistema sa Linux dili sayon nga buluhaton, labi na sa mga nagsugod. Usahay mas mograbe pa kung gusto nimo nga mag-develop ug magpadagan sa daghang mga proyekto nga adunay lainlaing mga bersyon sa Python sa parehas nga server. Bisan pa, dili kini kinahanglan nga mahitabo kung mogamit ka sa pyenv.

Ang Pyenv usa ka yano, kusgan ug cross-platform nga himan alang sa pagdumala sa daghang bersyon sa Python sa mga sistema sa Linux, nga gigamit alang sa.

  • Pagbalhin sa global nga bersyon sa Python sa matag user nga basehan.
  • pagbutang sa lokal nga bersyon sa Python base sa kada proyekto.
  • Pagdumala sa mga virtual environment nga gihimo sa anaconda o virtualenv.
  • Pag-override sa bersyon sa Python gamit ang environment variable.
  • Pagpangita mga sugo gikan sa daghang bersyon sa Python ug uban pa.

Kasagaran, usa ka default nga bersyon sa Python ang gigamit sa pagpadagan sa tanan nimo nga aplikasyon, gawas kung klaro nimo nga ipiho ang bersyon nga gusto nimo gamiton sa sulod sa aplikasyon. Apan ang pyenv nagpatuman sa usa ka yano nga konsepto sa paggamit sa shims (lightweight executables) aron ipasa ang imong command sa husto nga bersyon sa Python nga gusto nimong gamiton, kung daghan ka nga bersyon nga na-install.

Kini nga mga shims gisal-ot sa pyenv sa usa ka direktoryo sa atubangan sa imong PATH. Mao nga kung nagpadagan ka usa ka Python nga mando, kini ma-intercept sa angay nga shim ug ipasa sa pyenv, nga magtukod sa bersyon sa Python nga gitakda sa imong aplikasyon, ug ipasa ang imong mga mando sa husto nga pag-install sa Python. Kini usa ka kinatibuk-ang pagtan-aw kung giunsa ang paglihok sa pyenv.

Niini nga artikulo, ipakita namon kung giunsa ang pag-install sa labing bag-ong bersyon sa pyenv sa Linux. Atong ipakita usab ang unang tulo ka kaso sa paggamit nga gilista sa ibabaw.

Giunsa ang Pag-install sa Pyenv sa Linux

1. Una i-install ang tanan nga gikinahanglan nga mga pakete alang sa pag-instalar sa lain-laing mga bersyon sa Python gikan sa mga tinubdan gamit ang mosunod nga sugo sa imong tagsa-tagsa ka Linux distribution.

------------ 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. Sunod, kuhaa ang pinakabag-o nga pyenv source tree gikan sa Github repository niini ug i-install kini sa $HOME/.pyenv path gamit ang mosunod nga command.

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

3. Karon kinahanglan nimo nga ibutang ang environment variable PYENV_ROOT aron itudlo ang dalan diin imong gi-install ang pyenv ug i-export kini. Dayon idugang ang $PYENV_ROOT/bin sa imong PATH aron modagan ang pyenv command-line utility sama sa ubang mga command system.

Kinahanglan mo usab nga i-enable ang shims ingon man ang autocompletion pinaagi sa pagdugang sa pyenv init sa imong shell. Buhata kining tanan sa imong $HOME/.bashrc bash startup file, ingon sa gipakita.

$ vim $HOME/.bashrc 

Kopyaha ug idikit ang mosunod nga mga linya sa katapusan niini nga file.

## 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. Kung nahimo na nimo ang mga pagbag-o sa ibabaw, mahimo nimong gigikanan ang $HOME/.bashrc file o i-restart ang kabhang sama sa gipakita.

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

Giunsa ang Pag-install sa Daghang Mga Bersyon sa Python sa Linux

5. Niini nga punto, kinahanglan nga andam ka nga magsugod sa paggamit sa pyenv. Sa dili pa nimo i-install ang bisan unsang bersyon sa Python, mahimo nimong tan-awon ang tanan nga magamit nga mga bersyon gamit kini nga mando.

$ pyenv install -l

6. Mahimo nimong i-install ang daghang bersyon sa Python pinaagi sa pyenv, pananglitan.

$ pyenv install 3.6.4
$ pyenv install 3.6.5

7. Aron ilista ang tanang bersyon sa Python nga anaa sa pyenv, padagana ang mosunod nga sugo. Kini magpakita lamang sa mga bersyon nga na-install pinaagi sa pyenv mismo.

$ pyenv versions

8. Mahimo nimong susihon ang global nga bersyon sa Python gamit ang mosunod nga sugo, niining panahona, ang default nga bersyon kinahanglan nga usa nga gitakda sa sistema, dili pyenv.

$ pyenv global

Mahimo nimong itakda ang global nga bersyon sa python gamit ang pyenv command.

$ pyenv global 3.6.5
$ pyenv global

9. Mahimo nimong itakda ang lokal nga bersyon sa Python sa per-proyekto nga basehan, pananglitan, kung ikaw adunay proyekto nga nahimutang sa $HOME/python_projects/test, mahimo nimong itakda ang bersyon sa Python niini gamit ang mosunod nga sugo.

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

10. Ang Pyenv nagdumala sa mga virtual nga palibot pinaagi sa pyenv-virtualenv nga plugin nga nag-automate sa pagdumala sa mga virtualenv ug conda environment para sa Python sa Linux ug uban pang UNIX-like system.

Mahimo ka magsugod pinaagi sa pag-instalar niini nga plugin gamit ang mosunod nga mga sugo.

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

11. Karon maghimo kita og test virtual environment nga gitawag og venv_project1 ubos sa project nga gitawag og project1 sama sa mosunod.

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

12. Karon kung imong ilista ang tanan nga bersyon sa Python, ang imong virtual nga palibot ingon man ang ilang mga lokal nga bersyon sa python kinahanglan usab nga ilista, ingon sa gipakita sa screenshot.

$ pyenv versions

13. Aron ma-activate ang usa ka virtualenv, pananglitan venv_project1, i-type ang mosunod nga sugo.

$ pyenv activate venv_project1

Mubo nga sulat: Mahimo nimong makuha ang mensahe sa ubos samtang naggamit sa pinakabag-o nga bersyon sa pyenv-virtualenv plugin sa unang higayon.

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

Idugang ang line export PYENV_VIRTUALENV_DISABLE_PROMPT=1 sa imong $HOME/.bashrc file, diin imong gidugang ang ubang mga pyenv configs, ug tinubdan sa file aron masundog ang kinaiya nga gipasiugda.

14. Aron ma-deactivate ang gi-activate nga virtualenv, padagana kini nga sugo.

$ pyenv deactivate

Para sa dugang nga impormasyon, mahimo nimong ilista ang tanang pyenv command gamit ang mosunod nga command.

$ pyenv commands

Para sa dugang nga impormasyon, adto sa pyenv Github repository: https://github.com/pyenv/pyenv

Ang paggamit sa pyenv yano ra kaayo. Sa kini nga giya, gipakita namon kung giunsa kini i-install, ingon man gipakita ang pipila sa mga kaso sa paggamit niini alang sa pagdumala sa daghang mga bersyon sa python sa usa ka sistema sa Linux. Gamita ang porma sa feedback sa ubos aron mangutana o ipaambit ang imong mga hunahuna bahin niini nga himan.