Pyenv - Installer flere Python-versjoner for spesifikt prosjekt


Å administrere flere versjoner av Python på et Linux-system er ikke en lett oppgave, spesielt for nybegynnere. Noen ganger blir det til og med verre når du vil utvikle og kjøre flere prosjekter med forskjellige Python-versjoner på samme server. Dette bør imidlertid ikke være tilfelle hvis du bruker pyenv.

Les også: Slik installerer du siste Python 3.6-versjon i Linux

Hva er Pyenv?

Pyenv er et enkelt, kraftig og kryssplattformverktøy for å administrere flere Python-versjoner på Linux-systemer, som brukes til.

  • Bytte av den globale Python-versjonen per bruker.
  • sette den lokale Python-versjonen på per-prosjekt-basis.
  • Administrering av virtuelle miljøer laget av anaconda eller virtualenv.
  • Overstyrer Python-versjonen med en miljøvariabel.
  • Søkekommandoer fra flere versjoner av Python og mer.

Hvordan fungerer pyenv?

Vanligvis brukes en enkelt standardversjon av Python til å kjøre alle applikasjonene dine, med mindre du eksplisitt spesifiserer versjonen du vil bruke i applikasjonen. Men pyenv implementerer et enkelt konsept med å bruke shims (lette kjørbare filer) for å sende kommandoen til den riktige Python-versjonen du vil bruke, når du har flere versjoner installert.

Disse shims er satt inn av pyenv i en katalog foran PATH. Så når du kjører en Python-kommando, blir den fanget opp av den aktuelle shim og sendt til pyenv, som deretter etablerer Python-versjonen som er spesifisert av applikasjonen din, og passerer kommandoene dine sammen med den rettmessige Python-installasjonen. Dette er en oversikt over hvordan pyenv fungerer.

I denne artikkelen vil vi vise hvordan du installerer den nyeste versjonen av pyenv i Linux. Vi vil også demonstrere de tre første brukstilfellene som er oppført ovenfor.

Hvordan installere Pyenv i Linux

1. Installer først alle nødvendige pakker for å installere forskjellige Python-versjoner fra kilder ved å bruke følgende kommando på din respektive Linux-distribusjon.

------------ 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. Deretter henter du det siste pyenv-kildetreet fra Github-depotet og installer det i $HOME/.pyenv-banen ved å bruke følgende kommando.

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

3. Nå må du sette miljøvariabelen PYENV_ROOT til å peke på banen der du installerte pyenv og eksportere den. Legg deretter til $PYENV_ROOT/bin til PATH for å kjøre pyenv kommandolinjeverktøy som alle andre systemkommandoer.

Du må også aktivere shims samt autofullføring ved å legge til pyenv init i skallet ditt. Gjør alle disse tingene i $HOME/.bashrc-bash-oppstartsfilen, som vist.

vim $HOME/.bashrc 

Kopier og lim inn følgende linjer på slutten av denne filen.

## 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 gjort endringene ovenfor, kan du enten kilde $HOME/.bashrc-filen eller starte skallet på nytt som vist.

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

Hvordan installere flere Python-versjoner i Linux

5. På dette tidspunktet bør du være klar til å begynne å bruke pyenv. Før du installerer en Python-versjon, kan du se alle tilgjengelige versjoner med denne kommandoen.


pyenv install -l

6. Du kan nå installere flere Python-versjoner via for eksempel pyenv.

pyenv install 3.6.4
pyenv install 3.6.5

7. For å liste alle Python-versjoner som er tilgjengelige for pyenv, kjør følgende kommando. Dette vil bare vise versjoner installert via selve pyenv.

pyenv versions

8. Du kan sjekke den globale Python-versjonen med følgende kommando, på dette tidspunktet bør standardversjonen være den som er angitt av systemet, ikke pyenv.

pyenv global

Du kan angi den globale python-versjonen ved å bruke pyenv-kommandoen.

pyenv global 3.6.5
pyenv global

9. Du kan nå angi den lokale Python-versjonen på per-prosjekt-basis, hvis du for eksempel har et prosjekt i $HOME/python_projects/test, kan du angi Python-versjonen av den ved å bruke 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-plugin som automatiserer administrasjon av virtualenvs- og conda-miljøer for Python på Linux og andre UNIX-lignende systemer.

Du kan starte med å installere denne plugin-en ved å bruke følgende kommandoer.

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

11. Nå skal vi lage et virtuelt testmiljø kalt venv_project1 under et prosjekt kalt project1 som følger.

cd python_projects
mkdir project1
cd project1
pyenv virtualenv 3.6.5 venv_project1

12. Nå når du viser alle Python-versjoner, bør de virtuelle miljøene dine så vel som deres lokale python-versjoner også være oppført, som vist på skjermbildet.

pyenv versions

13. For å aktivere en virtualenv, for eksempel venv_project1, skriv inn følgende kommando.

pyenv activate venv_project1

Merk: Du kan få meldingen nedenfor mens du bruker den nyeste versjonen av 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.

Legg til linjen eksport PYENV_VIRTUALENV_DISABLE_PROMPT=1 i $HOME/.bashrc-filen din, der du la til andre pyenv-konfigurasjoner, og kilde filen for å simulere atferden som vektlegges.

14. For å deaktivere den aktiverte virtualenv, kjør denne kommandoen.

pyenv deactivate

For mer informasjon kan du liste alle pyenv-kommandoer ved å bruke følgende kommando.

pyenv commands

For mer informasjon, gå til pyenv Github-depotet: https://github.com/pyenv/pyenv

Les også: Slik installerer du flere PHP-versjoner for flere nettsteder

Å bruke pyenv er egentlig så enkelt. I denne veiledningen viste vi hvordan du installerer den, samt demonstrerte noen av brukstilfellene for å administrere flere python-versjoner på et Linux-system. Bruk tilbakemeldingsskjemaet nedenfor for å stille spørsmål eller dele tankene dine om dette verktøyet.