Neuere und ältere Versionen von Python auf Debian installieren?

12

Wie kann ich zusätzliche Versionen von Python unter Debian (Jessie) installieren? Unter Ubuntu kann ich das PPA "deadsnakes" verwenden, das mir jede gewünschte Python-Version mit dem Versionsnamen im Befehl gibt (z. B. python33für Python 3.3). Dadurch kann ich sie alle nebeneinander installieren. Ich kann virtualenvs verwenden, um bestimmte Python-Pakete für bestimmte Versionen zu installieren, ohne mit den System-Paketen herumzuspielen. Ich verwalte einige Python-Bibliotheken und sie müssen auf vielen Python-Versionen funktionieren. Wenn ich die Python-Binärdatei installiert habe, kümmert sich Tox um die Verwendung von virtualenvs für jede Python-Version.

Also, was ist das Debian-Äquivalent von Ubuntus Deadsnakes PPA?

UPDATE Ich möchte Python installieren: 2.6, 2.7, 3.3, 3.4 und 3.5.

Rory
quelle
Können Sie angeben, welche Python-Versionen Sie installieren möchten? Ich denke, Jessie hat ein paar verschiedene Versionen zur Verfügung.
Faheem Mitha
Meiner Meinung nach ist es wahrscheinlich besser, nur verschiedene Python-Versionen aus dem Quellcode zu installieren.
Celada,

Antworten:

9

Verwenden der PPA

Sie können das PPA unter Debian verwenden. Wählen Sie eine Ubuntu-Version , die etwas älter ist als Ihre Debian-Version, und sie sollte alle erforderlichen Bibliotheken enthalten. Für Wheezy scheint das Oneiric-PPA in Ordnung zu sein (aber es fehlen neuere Python-Versionen). Für Jessie sollte die vertrauenswürdige PPA funktionieren.

Um eine PPA in Debian hinzuzufügen, erstellen Sie eine Datei /etc/apt/sources.list.d/deadsnakes.listmit

deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu trusty main 
deb-src http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu trusty main 

Laden Sie den PPA-Signaturschlüssel mit herunter

gpg --keyserver keyserver.ubuntu.com --recv-keys DB82666C

Fügen Sie dann den Schlüssel mit der APT-Schlüsseldatenbank hinzu

gpg --export DB82666C | sudo apt-key add -

Führen Sie zum Schluss apt-get updatedie gewünschten Pakete aus und installieren Sie sie.

Wenn Sie die PPA aus bestimmten Gründen nicht zum Laufen bringen können (möglicherweise finden Sie keine Version, die mit Ihren Bibliotheken funktioniert), können Sie den Quellcode herunterladen und für Ihre Distribution neu kompilieren.

Verwendung eines Chroot-Systems

Was ich normalerweise mache, um die Kompatibilität mit anderen Versionen zu testen, ist, ältere oder neuere Distributionen in einem Chroot- System auszuführen . Sie könnten zum Beispiel verschiedene Versionen von Ubuntu mit den Python-Versionen installieren, an denen Sie interessiert sind, oder Sie könnten Trusty in einer Chroot installieren und den PPA dort installieren. Weitere Informationen finden Sie in meinem Schroot-Handbuch .

Gilles 'SO - hör auf böse zu sein'
quelle
1
Sie sollten die Verwendung von Ubuntu-PPAs unter Debian vermeiden, da dies zu Problemen oder anderen Konflikten führen kann. (Es ist auch möglich, pyenvvirtuelle Umgebungen für mehrere Python-Versionen zu verwenden.)
Thomas Ward,
Ich kann bestätigen, dass ich Python 2.6, 2.7, 3.1, 3.2, 3.3, 3.5 und 3.6 unter aktuellen Debian-Tests mit diesem Ansatz erfolgreich installiert habe . Die einzige Einschränkung, auf die ich gestoßen bin, war, dass ich eine alte Version ausgraben musste, libssl1.0.0die ich hier gefunden habe: packages.debian.org/jessie/libssl1.0.0 . Ich habe auch die xenial (16.04) -Versionen von Paketen (aktuelle lts) verwendet, obwohl ich glaube, dass trusty immer noch funktioniert.
Att Righ
1

Ich würde sagen, es gibt kein Debian-Äquivalent zu Ubuntus Deadsnakes PPA

Unter Debian wird die Verwendung von Ubuntu-Paketen oder -Repositorys nicht empfohlen. Da dieser Beitrag in Suchmaschinen erscheint, schlage ich hier eine Antwort vor, die für ein Debian-System weniger gefährlich ist.

Eine manuelle Installation von Python ist möglich. Als Beispiel können Sie die folgenden Anweisungen verwenden, um die Version 3.5.2 zu installieren

Voraussetzungen

Abhängigkeiten installieren:

sudo apt-get update && sudo apt-get install libssl-dev openssl

Python erstellen

Sie können Python in einem bestimmten Ordner mit dem --prefixParameter from erstellen configure:

wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
tar zxf Python-3.5.2.tgz
cd Python-3.5.2/
./configure --prefix=/usr/local
make
sudo make install

Stattdessen /usr/localkann ein anderes Basisverzeichnis verwendet werden. Als Beispiel:

sudo mkdir /opt/python-3.5.2
./configure --prefix=/opt/python-3.5.2

Auswahl der Python-Version

Die Verwendung der Umgebungsvariablen PATH kann bei der Auswahl der richtigen Python-Version hilfreich sein. Man kann aber auch Symlinks verwenden:

sudo ln -s /opt/python-3.5.2/bin/python3.5 /usr/local/bin/python3
sudo ln -s /opt/python-3.5.2/bin/pip3.5 /usr/local/bin/pip3

Mit der -fOption können Sie vorhandene Symlinks ersetzen

lauhub
quelle