Online zetten: packages in Ubuntu
Hier bouw je op verder: Installeren met sudo apt
Weet je dit niet meer zeker? Lees het terug voordat je verdergaat.
- Linux Installeren met sudo apt
Je code staat in Ubuntu, maar de packages nog niet: .venv zit niet in git. Je installeert ze opnieuw, uit je lijst van les 4. Dat is precies wat een server straks ook doet.
Een virtual environment
Ubuntu heeft Python al, maar de module om een virtual environment te maken moet je er eerst bij zetten. Typ in de terminal van VS Code, in je project:
sudo apt update
sudo apt install python3-venv
python3 -m venv .venv
sudo apt update haalt eerst de nieuwste lijst met pakketten op; met een oude lijst zoekt apt naar versies die er niet meer zijn. De laatste regel maakt de map .venv, net als op Windows. In Ubuntu heet Python python3: een commando python kent Ubuntu niet.
Aanzetten
Zet de virtual environment aan in de terminal:
source .venv/bin/activate
source voert een bestand uit in je eigen terminal. Voor je prompt staat nu (.venv):
(.venv) sam@laptop:~/gastenboek$
Zolang dat er staat, is python de Python uit .venv, en komt alles wat je installeert daarin. Staat er in een terminal geen (.venv) voor de prompt, typ deze regel dan opnieuw.
Installeren uit je lijst
python -m pip install -r requirements.txt
Er gaat iets mis
Een pakket dat apt niet kan ophalen
E: Package 'python3-venv' has no installation candidate
Of, met een 404:
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/universe/p/python3.12/python3.12-venv_…_amd64.deb 404 Not Found
Oorzaak: de lijst met pakketten van apt is leeg of oud. Je sloeg sudo apt update over. Met een lege lijst kent apt het pakket niet; met een oude zoekt hij een versie die er niet meer is.
Oplossing: typ sudo apt update, en installeer opnieuw.
ensurepip is not available
The virtual environment was not created successfully because ensurepip is not
available. On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.
apt install python3.12-venv
Oorzaak: de module voor een virtual environment staat nog niet in Ubuntu.
Oplossing: installeer hem met sudo apt update en sudo apt install python3-venv, en typ python3 -m venv .venv opnieuw. De half gemaakte map .venv hoef je niet eerst weg te gooien.
Command 'python' not found
Command 'python' not found, did you mean:
command 'python3' from deb python3
command 'python' from deb python-is-python3
Oorzaak: de virtual environment staat niet aan. Zonder .venv heet Python in Ubuntu python3.
Oplossing: zet hem aan met source .venv/bin/activate, kijk of (.venv) voor je prompt staat, en typ je commando opnieuw. Installeer geen python-is-python3: dan werkt python ook als je virtual environment uitstaat, en merk je niet meer dat hij uitstaat.
externally-managed-environment
error: externally-managed-environment
× This environment is externally managed
Of: /usr/bin/python3: No module named pip.
Oorzaak: je typte python3 -m pip terwijl de virtual environment niet aanstaat. Je probeert te installeren in de Python van Ubuntu zelf, en die laat dat niet toe, of heeft geen pip.
Oplossing: zet hem aan met source .venv/bin/activate, kijk of (.venv) voor je prompt staat, en installeer opnieuw. Installeer geen python3-pip om dit te omzeilen.
Door naar les 11: je site draait in Linux.