Python ohne root unter Linux installieren

Hier wollen wir uns nun anschauen, wie man python3 sicher und ohne root oder sudo verwenden kann.

Bevor wir loslegen können, muss man noch ein paar Abhängigkeiten installieren, um die volle Leistung von pip garantieren zu können (SSL/TLS support z.B.):

sudo apt install -y libssl-dev \
                    libncurses5-dev \
                    libsqlite3-dev \
                    libreadline-dev \
                    libtk8.6 \
                    libgdm-dev \
                    libdb4o-cil-dev \
                    libpcap-dev

Anschließend suchen wir eine Location für die Installation aus. Hier im Beispiel verwenden wir ~/Software/Python

mkdir -p ~/Software/Python
cd ~/Software/Python

Anschließend können wir Python von der Webseite herunterladen. Die aktuelle Version kann man auf der Python Website finden. Aktuell ist das Python 3.10.3.

Weiterhin in unserem Terminal im Ziel-Verzeichnis können wir mit Hilfe von wget die aktuelle Version herunterladen und anschließend entpacken:

wget https://www.python.org/ftp/python/3.10.3/Python-3.10.3.tgz
tar -xvzf Python-3.10.3.tgz

Im Folgenden findest du die Commands für das Konfigurieren und Compilen von Python:

cd Python-3.10.3
find ./Python/ -type d | xargs chmod 0755
./configure --prefix=/home/$USER/Software/Python/Python-3.10.3/Python --enable-optimizations
make
make install

Den Prefix musst du als absoluten Pfad angeben. Ist die Installation vollständig abgeschlossen, müssen wir zunächst die neue Python Location zu unserem PATH hinzufügen. Dazu bearbeiten wir die Datei ~/.profile oder (wenn man das bevorzugt, die ~/.bashrc):

vi ~/.profile

Dort ergänzen wir nun die folgenden Zeilen:

if [ -d "/home/qm-b/Software/Python/Python-3.10.3/Python/bin" ]; then
    PATH=/home/qm-b/Software/Python/Python-3.10.3/Python/bin:$PATH
fi

export PATH

Befindet sich bereits ein export $PATH in der Datei, muss der vorige Part vor dem Export eingefügt werden.

Anschließend laden wir die Datei neu:

source ~/.profile

Jetzt können wir testen, ob alles funktioniert:

which python3

Die Ausgabe sollte in etwa wie folgt aussehen:

/home/qm-b/Software/Python/Python-3.10.3/Python/bin/python3

Zu guter Letzt kann man noch testen, ob auch über pip reibungslos module installiert werden können:

python3 -m pip install pip_review black

Das war es damit auch schon!