Wie installiere ich eine andere Python-Version mit apt-get?

125

Wie kann ich mit apt-get eine andere Version von Python installieren?

Offensichtlich ist mir klar, dass ich mit dem Quell-Tar-Ball installieren kann, ich würde es jedoch vorziehen, nicht von der Quelle zu installieren und stattdessen den Paket-Manager zu verwenden, da er dafür da ist. Sicherlich erstellt irgendwo ein seriöses Unternehmen .deb-Dateien für die neuesten Python-Versionen (warum python.org nicht über mich hinausgeht), auf die ich verweisen kann.

Was muss ich tun, um auf sie zu verweisen, und welche Probleme kann es beim Upgrade auf die nächste Version verursachen?

Wenn es keine andere Möglichkeit gibt, als aus dem Quellcode zu erstellen, gibt es ein (Pseudo-) Paket, das ich installieren kann und das alle erforderlichen Abhängigkeiten bereitstellt, ohne dass jedes einzeln gesucht und installiert werden muss? Damit ich nicht bekomme:

The necessary bits to build these optional modules were not found:
_bz2                  _curses               _curses_panel      
_dbm                  _gdbm                 _lzma              
_sqlite3              _ssl                  _tkinter           
readline              zlib  
Harry
quelle
hast du schon mal bekommen E: Couldn't find any package by regex 'python3.5'und damit die installation über versagt apt-get install python3.5?
Charlie Parker
ähnliche Frage: askubuntu.com/questions/310441/…
Charlie Parker
einige gute vorschläge hier: quora.com/
Charlie Parker
1
@CharlieParker Haben Sie versucht, Anaconda zu installieren ?
M. Becerra

Antworten:

169

Felix Krull betreibt eine PPA, die im Grunde genommen jede Version von Python (im Ernst, es gibt 2.3.7 Build für Vivid ...) für viele Ubuntu-Releases unter https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa anbietet .

Mach das übliche:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.5

Es wird Ihr bestehendes nicht überschrieben, python3.4das immer noch als symbolisch gekennzeichnet ist python3.

Verändere den Symlink NICHT! Es gibt anscheinend viele Systemfunktionen, die mit python3.5 nicht richtig funktionieren.

Ich habe das ausprobiert und konnte danach kein Terminal, keinen Software-Updater, ... öffnen.

cd /usr/bin
sudo rm python3

Das Upgrade auf Wily wird das Meta-Paket anpassen python3zu zeigen auf python3.5. Ich erwarte keinen Bruch, aber zu diesem Zeitpunkt wird das Auslandslager nicht mehr benötigt. Um wirklich sicher zu gehen, können Sie die PPA vor dem Upgrade löschen.

Nephente
quelle
5
für noob ist da draußen nicht symlink! Wenn Sie nicht symlinken, müssen Sie python3.5 über die Befehlszeile eingeben, um python 3.5
Chris Hawkes
4
Könntest du mich darauf hinweisen, wie kann ich 3.4 Pip mit diesem 3.5 verwenden?
Groosha
2
@ kondra007 Ich habe die Anweisungen von pip.pypa.io/en/stable/installing befolgt (bitte lesen Sie die Warnung dort) und diese beiden Befehle wget https://bootstrap.pypa.io/get-pip.py; sudo python3.5 get-pip.pygaben mir einen funktionierenden Pip für Python 3.5, aber pip3.4 funktioniert nicht mehr. Wenn jemand es besser weiß, kommentieren Sie bitte
ndemou
2
Legen Sie außerdem python3.5 als Standard fest ~$ vim ~/.bashrcund fügen Sie dies hinzu alias python=python3.5. dann~$source ~/.bashrc
Krishnadas PC
1
Tipps: Wenn add-apt-repository: command not found, starten Sie apt-get install software-properties-common python-software-propertiesdie Installation
Mithril
35

Dieser Youtube-Link hat mir bei der Installation geholfen.

Die Schritte sind:

sudo apt-get install libssl-dev openssl
wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
tar xzvf Python-3.5.0.tgz
cd Python-3.5.0
./configure
make
sudo make install

Um zu überprüfen, ob Python installiert ist, geben Sie python3.5else ein:

sudo ln -fs /opt/Python-3.5.0/Python /usr/bin/python3.5
joydeep bhattacharjee
quelle
3
OP sagte, er wollte nicht aus dem Quellcode kompilieren
Michael Bates
3
Ja, du hast recht. Auch das Kompilieren aus dem Quellcode kann später zu Abhängigkeitsproblemen führen. Aber so habe ich es gelöst. Wenn es einen besseren Weg gibt, würde ich es definitiv wissen wollen.
Joydeep Bhattacharjee
5
Betrachten Sie ./configure --enable-optimizations stackoverflow.com/questions/41405728/…
warvariuc
1
@CharlieParker, da Python nicht für ein bestimmtes Betriebssystem entwickelt wurde. Es soll auf jeder Plattform ausgeführt werden. Für Linux bedeutet dies, dass entweder jede Version für jede Linux-Distribution kompiliert und verteilt werden muss (von denen es viele gibt), oder dass sie die Quelle verteilen und den Benutzer sie selbst in der Umgebung kompilieren lassen, in der sie sein wird benutzt. Letzteres ist weitaus praktikabler.
CJStuart
2
Sie benötigen außerdem den c / c ++ - Compiler vonapt-get install build-essential
bato3
13

Befolgen Sie einfach diese Schritte (getestet):

Schritt 1 - Erforderliche Pakete installieren

Verwenden Sie den folgenden Befehl, um die Voraussetzungen für Python vor der Installation zu installieren.

sudo apt-get install build-essential checkinstall
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

Schritt 2 - Laden Sie Python 3.5.2 herunter

Laden Sie Python mit dem folgenden Befehl von der offiziellen Python-Website herunter. Sie können auch die neueste Version anstelle der unten angegebenen herunterladen.

cd /usr/src
sudo wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz

Extrahieren Sie nun das heruntergeladene Paket.

sudo tar xzf Python-3.5.2.tgz

Schritt 3 - Python Source kompilieren

Verwenden Sie die folgenden Befehle, um mit altinstall den Python-Quellcode auf Ihrem System zu kompilieren.

cd Python-3.5.2
sudo ./configure
sudo make altinstall

make altinstallwird verwendet, um das Ersetzen der Standard-Python-Binärdatei zu verhindern /usr/bin/python.

Schritt 4 - Überprüfen Sie die Python-Version

Überprüfen Sie die neueste Version von Python mit dem folgenden Befehl.

$ python3.5 -V

Python 3.5.2

Quelle .

Bilal
quelle
2
+1 für die standardmäßige Verwendung von altinstall. Es gibt nicht viele reale Szenarien, in denen Sie nur mit einer Version leben können. Sogar auf Systemen mit Python3 als Standard müssen Sie Python möglicherweise umgekehrt installieren -> Python2 stattdessen oder Python2 hinzufügen.
erm3nda
1
Ich habe einen Fehler wie hier beschrieben erhalten - bugs.python.org/issue31652 musste ausgeführt werden sudo apt-get install libffi-dev, um ihn zu beheben.
Nishan Chathuranga
Ich würde auch hinzufügen sudo apt-get install liblzma-dev, um LZMA-Unterstützung zu aktivieren.
v.grabovets
6

Soweit ich das beurteilen kann, kann man zumindest in einem Docker-Container definitiv apt-getPython 3 verwenden.

Zuerst bin ich auf einen Ubuntu-Container mit Container gestoßen:

docker run -it --rm ubuntu:latest bash

dann musste es aus irgendeinem Grund einige Ubuntu-Sachen aktualisieren, damit ich es tat (innerhalb des Containers):

apt-get update && apt-get install -y build-essential git libjpeg-dev

und dann habe ich einfach python3 installiert und es scheint, dass es automatisch Python 3.5 bekommen hat:

apt-get install python3
apt-get install python3-pip

Und um zu testen, ob Pip funktioniert, können Sie Folgendes herunterladen:

pip3 install tensorflow

alles scheint gut für mich zu funktionieren.

Wichtiger Hinweis: Wenn Sie Python 3.4 bereits installiert haben, apt-get install python3funktioniert es anscheinend nicht, da es besagt, dass Sie es bereits haben. Es scheint, dass dies eines meiner Probleme war, weil ich von einem Docker-Image aus Tensorflow (im Besonderen gcr.io/tensorflow/tensorflow:latest-devel-py3) ausgegangen bin und etwas in diesem Image (ich gehe davon aus, dass es bereits Python 3.4 enthält, aber es könnte etwas anderes sein), das mir keine Aktualisierung ermöglichte Mein Python um Python 3.5 zu bekommen.


credit: Ich habe dies festgestellt, als ich Folgendes gefragt habe: https://stackoverflow.com/questions/42122826/can-one-use-python-3-5-in-a-docker-container-based-out-of-the -tensorflow-docker


Hinweis: Man kann auch einfach Anaconda installieren. Für ein Docker-Beispiel kann man Folgendes tun:

docker pull continuumio/anaconda3
docker run -i -t continuumio/anaconda3 /bin/bash

von ihrer offiziellen Website: https://hub.docker.com/r/continuumio/anaconda3/

Diese Lösung installiert Python 3.6, aber ich bin mir sicher, dass Sie Python 3.5 bekommen können, wenn Sie das wollen.

Hinweis: Sie sollten wahrscheinlich ohnehin eine virtuelle Umgebung wie virtual env oder conda / anaconda verwenden, es sei denn, Sie verwenden Docker. Ich wollte nur die Leute daran erinnern.

Charlie Parker
quelle
1
"in einem Docker-Container" ist eine sehr allgemeine Aussage: Es kommt darauf an, auf welchem ​​Image der Container basiert, zum Beispiel auf welcher Ubuntu-Version. Darüber hinaus kann es kleinere Versionen wie 3.5 oder 3.6 geben, die in einer Ubuntu-Version (zum Beispiel 14.04) nicht verfügbar sind
giorgiosironi
2

Es gibt eine Reihe neuerer Python-Distributionen, die über apt-get in Ubuntu-Paketen installiert werden können

als beispiel stehen derzeit folgende versionen zur verfügung:

python2.7

python3.2

python3.4

python3.5

python3.6

Die Verfügbarkeit variiert je nach Ubuntu-Release bis zu einem gewissen Grad. Zum Beispiel ist 3.5 für Xenial, Yakkety und Zesty verfügbar und 3.6 ist für Yakkety und Zesty verfügbar, aber Sie müssen das Universe-Repository aktivieren, wenn es nicht aktiviert ist, um sie über apt-get abzurufen. Um die Verfügbarkeit Ihrer Ubuntu-Version zu prüfen, klicken Sie auf die obigen Links.

Ein kurzer Blick zeigt, dass diese Antwort auch noch gültig ist, da PPA sogar für Trusty 3.6 hat.

Elder Geek
quelle
Die in Ubuntu Repo verfügbaren Python-Versionen sind nicht die neueste Python-Version .
Yaitloutou
@yaitloutou Die Frage sagt "neuer" nicht "neuester" Auf jeden Fall zögern Sie nicht, eine bessere Antwort zu schreiben.
Elder Geek
Sie sind richtig, aber seit neueren relativ zu dem, was nicht angegeben ist, habe ich es als neueste interpretiert :)
yaitloutou
@yaitloutou Fühlen Sie sich frei und schreiben Sie auf jeden Fall eine bessere Antwort! Ich bin mir sicher, dass wir das schätzen würden.
Elder Geek
Ich habe gerade angefangen, hier aktiv zu werden und lerne noch. Sorry, wenn Sie meinen Kommentar zu Ihrer Antwort aufdringlich finden
yaitloutou
0

Ich würde in Betracht ziehen, virtuelle Umgebungen zu verwenden, anstatt Python-Versionen über apt-get zu installieren.

Die Verwendung von virtuellen Umgebungen ( siehe hier) ist eine gute Methode für die Entwicklung mit Python. Sie können Ihre Python-Umgebung von den vom System installierten Python-Versionen isolieren.

Außerdem müssen Sie keinen sudo-Zugriff erhalten, während Sie eine Bibliothek installieren (über Pip usw.).

Devrimbaris
quelle
11
Ich denke, Sie müssen die gewünschte Version von Python installieren, bevor Sie es in einer virtuellen Umgebung verwenden können.
Nzbuu
1
Sie installieren die gewünschte Version von Python in der virtuellen Umgebung und ändern dann Ihren pythonbezogenen Pfad, indem Sie einfach das Skript "activate" in der virtuellen Umgebung ausführen.
Devrimbaris
Dies ist genau das, was ich tun möchte - das erste, was ich versuchte, nachdem ich der Antwort von @ Nephente gefolgt war, war, darauf hinzuweisen virtualenv -p. Aber es hat mit "ImportError: Name 'HTTPSHandler' kann nicht importiert werden" explodiert.
Michael Scheper
1
Warum wurde das abgelehnt? Virtuelle Umgebungen funktionieren normalerweise einwandfrei.
Charlie Parker
Wie installierst du ein virtuelles env in Ubuntu (wie in deinem Vorschlag), aber mit Python 3.5?
Charlie Parker
0

Conda wird aktiv aktualisiert und ermöglicht es Ihnen, mehrere Python-Versionen in verwalteten Venvs zu installieren, ohne die Mühe zu haben, alles selbst einzurichten. In vielen der von anaconda verwalteten Abhängigkeits- / Pip-Ketten, die verwendet werden, wurden möglicherweise Probleme mit dem Pfad zu binären Erweiterungen behoben.

RobotHumans
quelle