# Raspbian
Raspbian komt niet met de allerlaatste versie van Python en er is ook geen package te vinden met de allerlaatste versie, daarom gaan we Python zelf bouwen en installeren.
# Internetverbinding
Controleer eerst of je internetverbinding hebt via de browser.
# Voorbereiding
Open Terminal en installeer enkele ontbrekende pakketten die nodig zijn om Python te bouwen.
$ sudo apt-get update
$ sudo apt-get install -y build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev libffi-dev
# Downloaden
Ga naar de map /usr/src
met de opdracht cd
(change directory). Download in de broncode van de officiële website in deze map met het programma wget
en decomprimeer het gedownloade bestand met het programma tar
.
$ cd /usr/src
$ sudo wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
$ sudo tar -xf Python-3.8.0.tgz
# Bouwen
$ cd /usr/src/Python-3.8.0/
$ sudo ./configure --enable-optimizations
$ sudo make
# Installeren
$ cd /usr/src/Python-3.8.0/
$ sudo make altinstall
# Link maken
Om python3
aan de nieuwe versie maken we een symbolic link met de naam python3
naar python3.8
$ cd /usr/src/Python-3.8.0/
$ ln -sf /usr/local/bin/python3.8 /usr/local/bin/python3
Sluit het Terminal venster en open opnieuw
$ python3 --version
Python 3.8.0
$ _
# Test
$ cd ~
$ mkdir myproject
$ cd myproject
$ python3 -m venv venv
$ . venv/bin/activate
$ pip install Flask
Maak een nieuw bestand met nano
.
$ nano hello.py
# ./python/flask_hello/hello.py
from flask import Flask
from flask import escape
from flask import request
app = Flask(__name__)
@app.route('/')
def hello_world() -> str:
who = escape(request.args.get('who', 'world'))
return f'hello, {who}\n'
2
3
4
5
6
7
8
9
10
11
Sla het bestand op met
$ export FLASK_APP=hello.py
$ flask run
Om de webserver via het publiek IP-adres bereikbaar te maken, vraag je eerst het IP-adres op met hostname
en voeg je --host=0.0.0.0
toe aan de run
opdracht.
$ hostname -I
$ flask run --host=0.0.0.0