2. Python unter Unix Plattformen verwenden

2.1. Die neueste Python-Version beziehen und installieren

2.1.1. Unter Linux

Python ist auf den meisten Linux-Distributionen vorinstalliert und auf allen übrigen als Paket verfügbar. Es gibt allerdings bestimmte Funktionen, die du vielleicht nutzen möchtest und die im Paket deiner Distribution nicht enthalten sind. Du kannst die neueste Python-Version aus dem Quellcode kompilieren.

Falls die neueste Python-Version nicht vorinstalliert ist und auch nicht in den Paketquellen liegt, kannst du Pakete für deine eigene Distribution bauen. Sieh dir dazu die folgenden Verweise an:

2.1.1.1. IDLE installieren

In einigen Fällen ist IDLE nicht in deiner Python-Installation enthalten.

  • Für Debian- und Ubuntu-Benutzer:

    sudo apt update
    sudo apt install idle
    
  • Für Fedora-, RHEL- und CentOS-Benutzer:

    sudo dnf install python3-idle
    
  • Für SUSE- und OpenSUSE-Benutzer:

    sudo zypper install python3-idle
    
  • Für Benutzer von Alpine Linux:

    sudo apk add python3-idle
    

2.1.2. Unter FreeBSD und OpenBSD

  • FreeBSD-Benutzer fügen das Paket so hinzu:

    pkg install python3
    
  • OpenBSD-Benutzer fügen das Paket so hinzu:

    pkg_add -r python
    
    pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/<insert your architecture here>/python-<version>.tgz
    

    Benutzer von i386 bekommen die Version 2.5.1 von Python zum Beispiel so:

    pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/i386/python-2.5.1p2.tgz
    

2.2. Python bauen

If you want to compile CPython yourself, first thing you should do is get the source. You can download either the latest release’s source or just grab a fresh clone. (If you want to contribute patches, you will need a clone.)

Der Bauvorgang besteht aus den gewohnten Befehlen:

./configure
make
make install

Konfigurationsoptionen und Besonderheiten einzelner Unix-Plattformen sind ausführlich in der Datei README.rst in der Wurzel des Python-Quellbaums beschrieben.

Warnung

make install kann die Binärdatei python3 überschreiben oder verdecken. Statt make install empfiehlt sich daher make altinstall, denn es installiert nur exec_prefix/bin/pythonversion.

2.4. Verschiedenes

Damit sich Python-Skripte unter Unix bequem verwenden lassen, musst du sie ausführbar machen, etwa mit

$ chmod +x script

und oben im Skript eine passende Shebang-Zeile einfügen. Eine gute Wahl ist meist

#!/usr/bin/env python3

was den Python-Interpreter im ganzen PATH sucht. Manche Unix-Varianten haben allerdings keinen Befehl env, dann musst du /usr/bin/python3 als Interpreterpfad fest eintragen.

Um Shell-Befehle in deinen Python-Skripten zu verwenden, sieh dir das Modul subprocess an.

2.5. Eigenes OpenSSL

  1. Um die OpenSSL-Konfiguration deines Anbieters und den Vertrauensspeicher des Systems zu verwenden, finde das Verzeichnis mit der Datei openssl.cnf oder der symbolischen Verknüpfung darauf in /etc. Auf den meisten Distributionen liegt die Datei entweder in /etc/ssl oder in /etc/pki/tls. Das Verzeichnis sollte außerdem eine Datei cert.pem und/oder ein Verzeichnis certs enthalten.

    $ find /etc/ -name openssl.cnf -printf "%h\n"
    /etc/ssl
    
  2. Lade OpenSSL herunter, baue und installiere es. Achte darauf, install_sw zu verwenden und nicht install. Das Ziel install_sw überschreibt openssl.cnf nicht.

    $ curl -O https://www.openssl.org/source/openssl-VERSION.tar.gz
    $ tar xzf openssl-VERSION
    $ pushd openssl-VERSION
    $ ./config \
        --prefix=/usr/local/custom-openssl \
        --libdir=lib \
        --openssldir=/etc/ssl
    $ make -j1 depend
    $ make -j8
    $ make install_sw
    $ popd
    
  3. Baue Python mit dem eigenen OpenSSL (siehe die configure-Optionen --with-openssl und --with-openssl-rpath)

    $ pushd python-3.x.x
    $ ./configure -C \
        --with-openssl=/usr/local/custom-openssl \
        --with-openssl-rpath=auto \
        --prefix=/usr/local/python-3.x.x
    $ make -j8
    $ make altinstall
    

Bemerkung

Patch-Veröffentlichungen von OpenSSL haben ein abwärtsverträgliches ABI. Du musst Python nicht neu kompilieren, um OpenSSL zu aktualisieren. Es genügt, die eigene OpenSSL-Installation durch eine neuere Fassung zu ersetzen.