Neuere Python Version installieren / kompilieren

  • Für ein Projekt muss ich meine Python Version 3.2 aktualisieren und habe mich dazu entschlossen die derzeit aktuelle Python 3.6.0 zu installieren - was ich hier dokumentiere, wie immer auch für mich selbst...

    Vorab: Empfehlenswert Raspbian Jessie: gcc 5
    Ist aber mit Vorsicht zu geniesen!
    Neuere Python Versionen benötigen auch einen neueren GCC Compiler, zum Beispiel python3.4 benötigt mindestens gcc-4.9 (erst ab Jessie verfügbar), das ist für manche Python Module wichtig..


    Es gibt 2 Möglichkeiten:

    1) Build from Source.
    Dauert allerdings ziemlich lange da ca. 400 Tests durchgeführt werden. (kann man glaub ich aber auch abschalten)

    2) Aus einem Repository installieren.
    Wer eine ältere Distribution wie zB Wheezy nutzt muss temporär für apt-get eine neuere Source hinzufügen, wie im "gcc 5" thread beschrieben allerdings könnte "jessie" bereits reichen, sofern ihr statt python3.2 lieber python3.4 nutzen wollt. (manche neuere Module funktionieren erst ab python3.4)


    Was man auf jeden Fall nutzen sollte sofern man unterschiedliche Python Versionen (zB 3.4 und 3.6) nutzen möchte: https://virtualenv.pypa.io/en/stable/


    Zu 1.:

    Das "checkinstall" Paket/Programm ist optional und wird dazu genutzt ein *.deb Paket zu erstellen was man dann später immer wieder zum installieren benutzen kann, ohne vorheriges kompilieren. Ich würde diesen Schritt eigentlich empfehlen, allerdings nutzt es "make install" aber offiziell wird "make altinstall" empfohlen...


    Zu beachten ist das es nur eine python3.6/ Installation gibt, unabhängig der x.x.X Version.
    Wer also zum Beispiel 3.6.0 und zusätzlich auch 3.6.1 installiert haben will muss ein 'prefix' beim configure mit angeben um es in ein anderes Verzeichnis installieren zu lassen (zB: ./configure --enable-optimizations --prefix=/opt)


    Zu 2.:

    Code
    sudo -i
    
    
    echo 'deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi' > /etc/apt/sources.list.d/jessie.list
    apt-get update
    apt-get install python3
    #bzw:
    apt-get install python3.4


    Dann noch 'pip' für die jeweilige installieren:

    Code
    wget https://bootstrap.pypa.io/get-pip.py
    python3.6 get-pip.py
    
    
    pip3.6 install --upgrade setuptools

    (oder "python3.4 get-pip.py" je nach dem welche Version ihr installiert habt...)


    Seit pip v0.8 wird "pip{version}" bereitgestellt, worüber man vereinfacht Python-Module für die jeweilige Python-Version gezielt installieren kann, also zum Beispiel:

    Code
    pip2.7 install ...
    pip3.6 install ...


    Alternativ:

    Code
    python3.6 -m pip install ...


    Im Script nicht vergessen den Shebang ebenfalls eindeutig zu setzen.


    Quellen:
    http://unix.stackexchange.com/questions/3326…tall-python-3-6
    http://askubuntu.com/a/865644
    http://stackoverflow.com/a/25474222
    http://stackoverflow.com/questions/2718…rotector-strong

  • Das "checkinstall" Paket/Programm ist optional und wird dazu genutzt ein *.deb Paket zu erstellen was man dann später immer wieder zum installieren benutzen kann, ohne vorheriges kompilieren. Ich würde diesen Schritt eigentlich empfehlen, allerdings nutzt es "make install" aber offiziell wird "make altinstall" empfohlen...

    Code
    checkinstall altinstall

    Wenn du nichts zu sagen hast, sag einfach nichts.

  • Anaconda ist aber Fedora oder nicht?


    Jedenfalls benötige ich auch mit Jessie eine neuere Python Version da dort derzeit nur 3.4 verfügbar ist - ich brauch aber mindestens 3.5 und das erreiche ich nur so:

    Code
    echo 'deb http://mirrordirector.raspbian.org/raspbian/ testing main contrib non-free rpi' > /etc/apt/sources.list.d/stretch.list
    apt-get update
    apt-get install python3-dev python3-pip
    
    
    apt-get install python3-pil.imagetk
    
    
    rm /etc/apt/sources.list.d/stretch.list
    apt-get update
  • Hallo,

    Zitat

    Anaconda ist aber Fedora oder nicht?


    Nee, Anaconda ist unabhängig von der Distro (hab's selber schon unter Ubuntu genutzt) bzw. das gibt's auch für Windows.

    Wie ich heute aber auch gelernt habe, gibt es von Anaconda einen Port speziell für den Raspi namens [url=https://github.com/jjhelmus/berryconda]Berryconda[/quote]. Kann vom Funktionsumfang wohl das gleiche wie Anaconda. Die aktuelle Berryconda Version bringt Python 3.5 mit.

    Gruß, noisefloor

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!