Pyenv - Installéiert Multiple Python Versioune fir spezifesche Projet


D'Verwaltung vu verschidde Versioune vu Python op engem Linux System ass keng einfach Aufgab, besonnesch fir Ufänger. Heiansdo gëtt et souguer méi schlëmm wann Dir verschidde Projete mat verschiddene Python Versiounen um selwechte Server wëllt entwéckelen a lafen. Wéi och ëmmer, dëst sollt net de Fall sinn wann Dir pyenv benotzt.

Pyenv ass en einfacht, mächtegt a cross-platform Tool fir verschidde Python Versiounen op Linux Systemer ze managen, déi fir.

  • D'global Python Versioun op engem Benotzer Basis ëmsetzen.
  • déi lokal Python Versioun op pro-Projet Basis setzen.
  • Gestioun vu virtuellen Ëmfeld erstallt vun anaconda oder virtualenv.
  • D'Python Versioun iwwerschreiden mat enger Ëmfeldvariabel.
  • Sich Kommandoe vu verschiddene Versioune vu Python a méi.

Normalerweis gëtt eng eenzeg Standardversioun vu Python benotzt fir all Är Uwendungen auszeféieren, ausser Dir spezifizéiert explizit d'Versioun déi Dir an der Applikatioun benotze wëllt. Awer pyenv implementéiert en einfacht Konzept fir Shims (liicht ausführbar) ze benotzen fir Äre Kommando un déi richteg Python Versioun ze passéieren déi Dir benotze wëllt, wann Dir verschidde Versiounen installéiert hutt.

Dës Shims ginn duerch pyenv an engem Verzeechnes virun Ärem PATH agebaut. Also wann Dir e Python Kommando leeft, gëtt et vum entspriechende Shim ofgefaangen an op pyenv weidergeleet, déi dann d'Python Versioun etabléiert, déi vun Ärer Applikatioun spezifizéiert gouf, a gitt Är Kommandoen un déi richteg Python Installatioun. Dëst ass en Iwwerbléck iwwer wéi pyenv funktionnéiert.

An dësem Artikel wäerte mir weisen wéi Dir déi lescht Versioun vu pyenv op Linux installéiert. Mir wäerten och déi éischt dräi Benotzungsfall hei uewen weisen.

Wéi installéiere Pyenv op Linux

1. Installéiere fir d'éischt all déi erfuerderlech Packagen fir verschidde Python-Versiounen aus Quellen z'installéieren andeems Dir folgend Kommando op Ärer jeweileger Linux Verdeelung benotzt.

------------ 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. Als nächst, gräift de leschten pyenv Quellbaum aus sengem Github Repository an installéiere se am $HOME/.pyenv Wee mat dem folgenden Kommando.

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

3. Elo musst Dir d'Ëmweltvariabel PYENV_ROOT setzen fir op de Wee ze weisen wou Dir pyenv installéiert hutt an se exportéieren. Füügt dann $PYENV_ROOT/bin op Äre PATH fir pyenv Kommandozeilen Utility wéi all aner Systembefehl ze lafen.

Dir musst och Shims aktivéieren wéi och Autocompletion andeems Dir de pyenv init op Är Shell bäidréit. Maacht all dës Saachen an Ärer $HOME/.bashrc bash Startupdatei, wéi gewisen.

$ vim $HOME/.bashrc 

Kopéiert a paste déi folgend Zeilen um Enn vun dëser Datei.

## 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. Wann Dir déi uewe genannte Ännerunge gemaach hutt, kënnt Dir entweder Quell $HOME/.bashrc Datei oder d'Shell nei starten wéi gewisen.

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

Wéi installéiere verschidde Python Versiounen op Linux

5. Zu dësem Zäitpunkt sollt Dir bereet sinn pyenv ze benotzen. Ier Dir eng Python Versioun installéiert, kënnt Dir all verfügbare Versioune mat dësem Kommando kucken.

$ pyenv install -l

6. Dir kënnt elo méi Python Versioun via pyenv installéieren, zum Beispill.

$ pyenv install 3.6.4
$ pyenv install 3.6.5

7. Fir eng Lëscht vun all Python Versiounen sinn ze pyenv, lafen de folgende Kommando. Dëst wäert nëmme Versioune weisen, déi iwwer pyenv selwer installéiert sinn.

$ pyenv versions

8. Dir kënnt d'global Python Versioun mat de folgende Kommando kontrolléieren, vun dëser Zäit, soll d'Standard Versioun déi vum System gesat ginn, net pyenv.

$ pyenv global

Dir kënnt d'global Python Versioun mat dem pyenv Kommando astellen.

$ pyenv global 3.6.5
$ pyenv global

9. Dir kënnt elo déi lokal Python Versioun op pro-Projet Basis setzen, zum Beispill, wann Dir e Projet an $HOME/python_projects/test hutt, kënnt Dir d'Python-Versioun dovun setzen andeems Dir folgend Kommando benotzt.

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

10. Pyenv geréiert virtuell Ëmfeld iwwer de pyenv-virtualenv Plugin deen d'Gestioun vu virtualenvs a conda Ëmfeld fir Python op Linux an aner UNIX-ähnlech Systemer automatiséiert.

Dir kënnt ufänken andeems Dir dëse Plugin mat de folgende Kommandoen installéiert.

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

11. Elo wäerte mir en Test virtuell Ëmfeld schafen genannt venv_project1 ënner engem Projet genannt project1 wéi follegt.

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

12. Elo wann Dir all Python Versiounen Lëscht, Är virtuell Ëmfeld wéi och hir lokal Python Versiounen soll och opgezielt ginn, wéi am Screenshot gewisen.

$ pyenv versions

13. Fir eng aktivéieren virtualenv, Zum Beispill venv_project1, Typ folgend Kommando.

$ pyenv activate venv_project1

Notiz: Dir kënnt de Message hei drënner kréien wann Dir déi lescht Versioun vum pyenv-virtualenv Plugin fir d'éischte Kéier benotzt.

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

Füügt den Zeilexport PYENV_VIRTUALENV_DISABLE_PROMPT=1 an Ärer $HOME/.bashrc Datei, wou Dir aner pyenv Konfiguratioune bäigefüügt hutt, a Quell d'Datei fir d'Behuele ze simuléieren déi ënnersträicht.

14. Fir de aktivéiert virtualenv auszeschalten, lafen dëse Kommando.

$ pyenv deactivate

Fir méi Informatioun, kënnt Dir all pyenv Kommandoen oplëschten andeems Dir folgend Kommando benotzt.

$ pyenv commands

Fir méi Informatioun, gitt op de pyenv Github Repository: https://github.com/pyenv/pyenv

Pyenv benotzen ass wierklech sou einfach. An dësem Guide hu mir gewisen wéi et installéiert gëtt, wéi och e puer vu senge Benotzungsfäll bewisen fir verschidde Python Versiounen op engem Linux System ze managen. Benotzt de Feedbackformular hei ënnen fir Froen ze stellen oder Är Gedanken iwwer dëst Tool ze deelen.