Göm meny

Virtuella miljöer

När man jobbar med ett projekt använder man ofta olika pythonpaket. Olika projekt kan kräva olika versioner av samma paket. Ett projekt som är några år gammalt använder kanske en tidigare version av ett paket än senaste versionen som finns idag. Skillnader mellan versioner kan vara att man ändrat på hur en funktion anropas, eller att man till och med tagit bort en funktion eller klass och ersatt den med något annat. Detta betyder att det behövs ett sätt jobba med projektspecifika pythonmiljöer och det är just detta som vi använder virtuella miljöer till.

Skapa en virtuell miljö

Från Python 3.3 så följer modulen venv med när man installerar Python. För att skapa en virtuell miljö för vår aktuella version av Python 3 skriver vi följande i terminalen ($ refererer till prompten och ska inte skrivas in):

$ python3 -m venv /sökväg-till-virtuell-miljö

Detta kommer att skapa en virtuell miljö i katalogen /sökväg-till-virtuell-miljö. Efter att vi skapat den virtuella miljön kan vi aktivera den och installera paket (se Installera paket) som endast är tillgängliga när den virtuella miljön är aktiverad.

För att t.ex. skapa en virtuel miljö i katalogen ~/min_kurs/mitt_projekt/projekt_venv skriver du

$ python3 -m venv ~/min_kurs/mitt_projekt/projekt_venv

Aktivera en virtuell miljö

Du måste aktivera en virtuell miljö för att använda den. Du behöver aktivera den virtuella miljön igen om du startar en ny terminalsession t.ex. genom att öppna ett nytt terminalfönster.

För att aktivera en virtuell miljö i Linux eller på macOS skriver du följande i terminalen:

$ source /sökväg-till-virtuell-miljö/bin/activate

Om du skapade din virtuella miljö i t.ex. ~/venv_lab4 skriver du source ~/venv_lab4/bin/activate.

Windows

För Windows ser det lite annorlunda ut. Om du använder kommandotolken (cmd.exe) så skriver du:

$ sökväg-till-virtuell-miljö\Scripts\activate.bat

Om du använder Powershell så skriver du

$ sökväg-till-virtuell-miljö\Scripts\Activate.ps1

Om du inte kan aktivera miljön utan får ett felmeddelande om säkerhetsinställning så behöver du köra

$ Set-ExecutionPolicy Unrestricted -Scope Process

Avaktivera en virtuell miljö

När du inte längre vill jobba i en viss virtuell miljö behöver du avaktivera den. För att avaktivera den virtuella miljö som är aktiverad för tillfället skriver du

$ deactivate

Detta gäller både Linux/macOS och Windows.

I Python-dokumentationen


Sidansvarig: Jody Foo
Senast uppdaterad: 2021-02-24