Pyenv - Installer flere Python-versioner til et specifikt projekt


Administration af flere versioner af Python på et Linux-system er ikke en let opgave, især for begyndere. Nogle gange bliver det endda værre, når du vil udvikle og køre flere projekter med forskellige Python-versioner på den samme server. Dette bør dog ikke være tilfældet, hvis du ansætter pyenv.

Pyenv er et simpelt, kraftfuldt og platformoverskridende værktøj til styring af flere Python-versioner på Linux-systemer, der bruges til.

  • Skift af den globale Python-version pr. bruger.
  • indstilling af den lokale Python-version på projektbasis.
  • Styring af virtuelle miljøer oprettet af anaconda eller virtualenv.
  • Tilsidesættelse af Python-versionen med en miljøvariabel.
  • Søgning efter kommandoer fra flere versioner af Python og mere.

Normalt bruges en enkelt standardversion af Python til at køre alle dine applikationer, medmindre du udtrykkeligt angiver den version, du vil bruge i applikationen. Men pyenv implementerer et simpelt koncept med at bruge shims (lette eksekverbare filer) til at overføre din kommando til den korrekte Python-version, du vil bruge, når du har flere versioner installeret.

Disse shims indsættes af pyenv i et bibliotek foran din PATH. Så når du kører en Python-kommando, bliver den opfanget af den passende shim og videregivet til pyenv, som derefter opretter den Python-version, der er specificeret af din applikation, og sender dine kommandoer videre til den retmæssige Python-installation. Dette er en oversigt over, hvordan pyenv fungerer.

I denne artikel viser vi, hvordan du installerer den nyeste version af pyenv i Linux. Vi vil også demonstrere de tre første anvendelsessager, der er anført ovenfor.

Sådan installeres Pyenv i Linux

1. Installer først alle de nødvendige pakker til installation af forskellige Python-versioner fra kilder ved hjælp af følgende kommando på din respektive 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. Tag derefter det nyeste pyenv-kildetræ fra sit Github-arkiv og installer det i $ HOME/.pyenv -stien ved hjælp af følgende kommando.

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

3. Nu skal du indstille miljøvariablen PYENV_ROOT til at pege på stien, hvor du installerede pyenv og eksportere den. Føj derefter $ PYENV_ROOT/bin til din PATH for at køre pyenv-kommandolinjeprogrammet som alle andre systemkommandoer.

Du skal også aktivere shims såvel som autofuldførelse ved at tilføje pyenv init til din shell. Gør alle disse ting i din $ HOME/.bashrc bash-startfil, som vist.

$ vim $HOME/.bashrc 

Kopier og indsæt følgende linjer i slutningen af denne fil.

## 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. Når du har foretaget ovenstående ændringer, kan du enten kilde $ HOME/.bashrc-filen eller genstarte skallen som vist.

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

Sådan installeres flere Python-versioner i Linux

5. På dette tidspunkt skal du være klar til at begynde at bruge pyenv. Før du installerer en Python-version, kan du se alle tilgængelige versioner med denne kommando.

$ pyenv install -l

6. Du kan nu f.eks. Installere flere Python-versioner via pyenv.

$ pyenv install 3.6.4
$ pyenv install 3.6.5

7. For at liste alle Python-versioner, der er tilgængelige for pyenv, skal du køre følgende kommando. Dette viser kun versioner installeret via selve pyenv.

$ pyenv versions

8. Du kan kontrollere den globale Python-version med følgende kommando, på dette tidspunkt skal standardversionen være den, der er indstillet af systemet, ikke pyenv.

$ pyenv global

Du kan indstille den globale pythonversion ved hjælp af pyenv-kommandoen.

$ pyenv global 3.6.5
$ pyenv global

9. Du kan nu indstille den lokale Python-version pr. Projektbasis, hvis du f.eks. Har et projekt i $ HOME/python_projects/test, kan du indstille Python-versionen af det ved hjælp af følgende kommando.

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

10. Pyenv administrerer virtuelle miljøer via pyenv-virtualenv-pluginet, som automatiserer styring af virtualenvs og conda-miljøer til Python på Linux og andre UNIX-lignende systemer.

Du kan starte med at installere dette plugin ved hjælp af følgende kommandoer.

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

11. Nu opretter vi et test virtuelt miljø kaldet venv_project1 under et projekt kaldet project1 som følger.

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

12. Når du nu viser alle Python-versioner, skal dine virtuelle miljøer såvel som deres lokale python-versioner også vises, som vist på skærmbilledet.

$ pyenv versions

13. For at aktivere en virtualenv, for eksempel venv_project1, skal du skrive følgende kommando.

$ pyenv activate venv_project1

Bemærk: Du får muligvis beskeden nedenfor, når du bruger den nyeste version af pyenv-virtualenv-plugin for første gang.

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

Tilføj linieeksporten PYENV_VIRTUALENV_DISABLE_PROMPT = 1 i din $ HOME/.bashrc-fil, hvor du tilføjede andre pyenv-konfigurationer, og kilde filen for at simulere den adfærd, der understreges.

14. Kør denne kommando for at deaktivere den aktiverede virtualenv.

$ pyenv deactivate

For mere information kan du liste alle pyenv-kommandoer ved hjælp af følgende kommando.

$ pyenv commands

For mere information, gå til pyenv Github-arkivet: https://github.com/pyenv/pyenv

Brug af pyenv er virkelig så simpelt. I denne vejledning viste vi, hvordan du installerer det, samt demonstrerede nogle af dets brugssager til styring af flere pythonversioner på et Linux-system. Brug feedbackformularen nedenfor til at stille spørgsmål eller dele dine tanker om dette værktøj.