Forskjell mellom versjoner av «Installere python virtualenv»

Fra IT-hjelp UiB
(la til pyenv)
 
(4 mellomliggende revisjoner av samme bruker vises ikke)
Linje 35: Linje 35:
 
Dersom man ønsker å kunne installere flere versjoner av python og andre distribusjoner som Anaconda eller lignende kan [https://github.com/pyenv/pyenv pyenv] være en god løsning.
 
Dersom man ønsker å kunne installere flere versjoner av python og andre distribusjoner som Anaconda eller lignende kan [https://github.com/pyenv/pyenv pyenv] være en god løsning.
  
Det er best å bruke /scratch til dette siden det kan vøre ganske mye data.
+
Det er best å bruke /scratch til dette siden det kan være ganske mye data.
  
 
For å installere pyenv gjør man følgende:
 
For å installere pyenv gjør man følgende:
Linje 43: Linje 43:
 
</pre>
 
</pre>
  
Deretter editerer man ~/.bashrc og sørger for at følgende står i filen:
+
Deretter editerer man ~/.bashrc og sørger for at følgende står i filen. For maskiner med lokal hjemmekatalog:
 
<pre>
 
<pre>
 +
export PYENV_ROOT=/scratch/pyenv
 
export PATH="$PYENV_ROOT/bin:$PATH"
 
export PATH="$PYENV_ROOT/bin:$PATH"
 
eval "$(pyenv init -)"
 
eval "$(pyenv init -)"
 
eval "$(pyenv virtualenv-init -)"
 
eval "$(pyenv virtualenv-init -)"
 +
</pre>
 +
 +
Dersom man har sentral hjemmekatalog og ønsker å unngå feilmeldinger når man logger inn på maskiner uten pyenv kan man først teste om pyenv eksisterer:
 +
<pre>
 +
if test -d /scratch/pyenv; then
 +
  export PYENV_ROOT=/scratch/pyenv
 +
  export PATH="$PYENV_ROOT/bin:$PATH"
 +
  eval "$(pyenv init -)"
 +
  eval "$(pyenv virtualenv-init -)"
 +
fi
 
</pre>
 
</pre>
  
Linje 61: Linje 72:
 
</pre>
 
</pre>
  
Om man ønsker å fjerne pyenv så gjøres dette ved å slette /scratch/pyenv. Husk å fjerne referansene til pyenv fra ~/.bashrc
+
Når pyenv er installert vil pip installere pakkene til den aktive python-versjonen.
 +
 
 +
For å oppdatere pyenv bruker man git pull:
 +
<pre>
 +
cd $(pyenv root)
 +
git pull
 +
</pre>
 +
 
 +
Om man ønsker å fjerne pyenv så gjøres dette ved å slette /scratch/pyenv. Husk å fjerne referansene til pyenv fra ~/.bashrc dersom den ikke ligger inne med en test.

Nåværende revisjon fra 15. mai 2019 kl. 09:07

Virtualenv

Virtualenv er et verktøy som løser problematikken med å ha flere python prosjekt med forskjellige/motstridene krav på en maskin. Det virtualenv gjør er at det lager et isolert område som prosjektet kan leve i med en kopi av alt du trenger for å kjøre et python program.


Installer virtualenv :

[user@hostname ~]$ sudo apt-get install python-virtualenv

Da er virtualenv installert og man kan lage et isolert område for prosjektet som også installerer pip til prosjektet ditt:

[user@hostname ~]$ cd sti/til/mineprosjekt
[user@hostname mineprosjekt]$ virtualenv mittprosjekt_env
[user@hostname mineprosjekt]$ cd mittprosjekt_env
[user@hostname mittprosjekt_env]$ source bin/activate

Da er man klar til å installere det man ønsker av python pakker til prosjektet.

[user@hostname mittprosjekt_env]$ pip install PythonPakke
  • Pakkene blir da liggende i mittprosjekt_env/ og er tilgjengelig for kun dette prosjektet.


Når man er ferdig kan man bare kjøre følgende kommando for å avslutte arbeidet i virtualenv:

(mittprosjekt_env)[user@hostname mittprosjekt_env]$ deactivate

pyenv

Dersom man ønsker å kunne installere flere versjoner av python og andre distribusjoner som Anaconda eller lignende kan pyenv være en god løsning.

Det er best å bruke /scratch til dette siden det kan være ganske mye data.

For å installere pyenv gjør man følgende:

export PYENV_ROOT=/scratch/pyenv
curl https://pyenv.run | bash

Deretter editerer man ~/.bashrc og sørger for at følgende står i filen. For maskiner med lokal hjemmekatalog:

export PYENV_ROOT=/scratch/pyenv
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

Dersom man har sentral hjemmekatalog og ønsker å unngå feilmeldinger når man logger inn på maskiner uten pyenv kan man først teste om pyenv eksisterer:

if test -d /scratch/pyenv; then
  export PYENV_ROOT=/scratch/pyenv
  export PATH="$PYENV_ROOT/bin:$PATH"
  eval "$(pyenv init -)"
  eval "$(pyenv virtualenv-init -)"
fi

Nå kan man installere andre versjoner av python og enkelt bytte mellom versjonene.

pyenv install --list # lister alle tilgjengelige installasjoner
pyenv install 3.7.1  # installerer python 3.7.1
pyenv versions       # lister opp alle installerte versjoner
pyenv version        # forteller hvilken versjon som er gjeldende for den mappen man står i
pyenv rehash         # kjøres etter at man har gjort endringer
pyenv global         # setter eller viser den globale pythonversjonen
pyenv local          # setter eller viser den lokale pythonversjonen

Når pyenv er installert vil pip installere pakkene til den aktive python-versjonen.

For å oppdatere pyenv bruker man git pull:

cd $(pyenv root)
git pull

Om man ønsker å fjerne pyenv så gjøres dette ved å slette /scratch/pyenv. Husk å fjerne referansene til pyenv fra ~/.bashrc dersom den ikke ligger inne med en test.