När man jobbar i ett Python-projekt, eller i ett kursrepo, så vill man kunna installera program och moduler som endast ligger i projektet och inte krockar med övriga globala installationer på ens dator.
Till vår hjälp kommer Pythons virtual environment, venv. I senare utgåvor av Python är detta inkluderat i den exekverbara
Här är en snabb variant och översikt till hur det fungerar. Som exempel används repot matmod. Jag visar hur du skapar den virtuella miljön med och utan makefilen som ligger i repot.
Skapa, aktivera och deaktivera en virtuell miljö.
Skapa den virtuella miljön i en viss katalog, här
Nu aktiverar vi den, man kan alltså ha flera virtuella miljöer liggande parallellt.
Jag har sedan tidigare ett alias för detta, allt för att förenkla.
Allt vi gör med Python kommer nu att gå mot de versioner som ligger installerade i vår virtuella miljö som vi aktiverat.
När vi är klara så deaktiverar vi den virtuella miljön och prompten går tillbaka till sin utsprungliga form och nu används den globala installationen istället.
Installera med pip från requirements.txt
Ett sätt att enkelt installera många paket på en gång är att lägga dem i en fil
Sedan kan man installera alla paketen via
En fil requirements.txt är bra att ha i ett repo så att alla dependencies installeras per automatik.
Till vår hjälp kommer Pythons virtual environment, venv. I senare utgåvor av Python är detta inkluderat i den exekverbara
python3
.Här är en snabb variant och översikt till hur det fungerar. Som exempel används repot matmod. Jag visar hur du skapar den virtuella miljön med och utan makefilen som ligger i repot.
Skapa, aktivera och deaktivera en virtuell miljö.
Skapa den virtuella miljön i en viss katalog, här
.venv
.- Kod: Markera allt
# make python-venv
$ python3 -m venv .venv
$ ls -l .venv
Nu aktiverar vi den, man kan alltså ha flera virtuella miljöer liggande parallellt.
- Kod: Markera allt
# Sourca dess miljö och prompten ändras
$ . .venv/bin/activate
(.venv) $ which python3
/home/mos/git/matmod/.venv/bin/python3
Jag har sedan tidigare ett alias för detta, allt för att förenkla.
- Kod: Markera allt
$ alias activate
alias activate='. .venv/bin/activate'
Allt vi gör med Python kommer nu att gå mot de versioner som ligger installerade i vår virtuella miljö som vi aktiverat.
När vi är klara så deaktiverar vi den virtuella miljön och prompten går tillbaka till sin utsprungliga form och nu används den globala installationen istället.
- Kod: Markera allt
(.venv) $ deactivate
$ which python3
/usr/bin/python3
Installera med pip från requirements.txt
Ett sätt att enkelt installera många paket på en gång är att lägga dem i en fil
requirements.txt
, så här.- Kod: Markera allt
pylint
sympy
Sedan kan man installera alla paketen via
python3 -m pip install
. I kursrepot har jag valt att döpa om filen till .requirements.txt
så jag skriver python3 -m pip install --requirement .requirements.txt
men jag tar också hjälp av makefilen och make python-install
.- Kod: Markera allt
# Installera paket från requirements.txt
# make python-install
$ python3 -m pip install --requirement .requirements.txt
En fil requirements.txt är bra att ha i ett repo så att alla dependencies installeras per automatik.
...
..:
.... /mos