Frage Wie installiere ich das neueste Python 2.7.X oder 3.X unter Ubuntu?


Ich möchte den neuesten Python-Tarball auf Ubuntu installieren, heruntergeladen von http://python.org/download/.

Ist das eine korrekte Installation?

./configure
make
make install

Wenn nicht, wie mache ich das?


157
2018-02-05 12:02


Ursprung


Zu einer Zeit, ich stelle mir vor das wurde gefragt, um ein zu installieren neuer Version von Python auf Ubuntu. Jetzt ist es erforderlich, ein zu installieren älter  Version von Python auf Ubuntu (weil wir immer noch Python 2.7 für viele Dinge erforderlich) ... tl; dr: Diese Antwort ist nicht mehr aktuell / korrekt. Unter der Annahme, dass python3 standardmäßig installiert ist (und möglicherweise ein minimales python2.x), führen Sie dann Folgendes aus: sudo apt-get install python-2.7 python-pip - michael
@michael_n wovon sprichst du? das Kompilieren von der Quelle macht diese Antwort nicht falsch oder veraltet. es ist nur eine andere Methode. Sie können apt verwenden, um den Prozess bei Bedarf zu automatisieren. - jargonjunkie
Du nimmst was du brauchst. Ich sehe nicht wirklich, wie dies Ihren Anspruch auf Überalterung unterstützt. Wie du selbst gesagt hast, du benutzt es, wenn es nötig ist, weil es vielleicht nicht verfügbar ist. Zum Beispiel verwendet Windows-Subsystem für Linux einige veraltete Software-Pakete, obwohl die Distribution Ubuntu 16.04.1 (Beta) ist und Python 2.6.2 und Python3 verwendet, obwohl der aktuelle Python 2.7.12 ist. In diesem Fall sollte ich kompilieren, wenn ich aktuelle Pakete möchte - jargonjunkie
@jargonjunkie du bist Off-Topic, aber richtig. Wenn die Frage ist "Wie installiere ich Python 2.7 auf Ubuntu 16.04 +" was es ist (seit 16.04 ist jetzt verfügbar, was mein Punkt ist), dann bist du einfach sudo apt-get install python2.7. Dies ist nicht nur einfacher, es ist die einzig richtige Antwort, da es die einzige Möglichkeit ist, die Python-Module über apt-get und deren Abhängigkeiten zu installieren. - michael
hoffe, das hilft zu illustrieren (Antwort hinzugefügt). Das Python-Ökosystem ist sehr speziell / finicky, und Sie können leicht in "Abhängigkeitshölle" geraten, wenn Sie Ihre Python-Umgebung nicht sorgfältig konstruieren askubuntu.com/a/831075/17060 - michael


Antworten:


Installieren Sie zuerst einige Abhängigkeiten:

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

Laden Sie dann mit folgendem Befehl herunter:

version=2.7.13
cd ~/Downloads/
wget https://www.python.org/ftp/python/$version/Python-$version.tgz

Extrahiere und gehe in das Verzeichnis:

tar -xvf Python-$version.tgz
cd Python-$version

Installieren Sie jetzt mit dem Befehl, den Sie gerade ausprobiert haben checkinstall Stattdessen erleichtern Sie die Deinstallation bei Bedarf:

./configure
make
sudo checkinstall

Veränderung version zu der Version, die Sie benötigen (version=2.7.1 oder version=3.6.0, beispielsweise).


184
2018-02-05 12:20



Benutzen sudo make install und nicht altinstall um es als Standard-Python-Version festzulegen - Shagun Sodhani
benutzen CXX=g++ ./configure Wenn ./configure eine Warnung ausgibt, die besagt, dass g ++ nicht gefunden wurde - srj
Nach der Installation wie oben beschrieben, welche Befehle führe ich in der Konsole aus, um zu überprüfen, ob sie tatsächlich installiert ist? - Ciwan
Es ist ziemlich außergewöhnlich, dass die beste Antwort auf die einfache Frage "Wie installiere ich Python?" Solch schreckliche Warnung tragen würde, es ist wie "das ist der beste Weg, um Python zu installieren und es könnte Ihr System beschädigen" ... Es ist auch sehr überraschend, dass die offizielle Python-Website viele Downloads hat und keine einzige Seite mit Installationsanweisungen. - patb
Pat - die beste Antwort auf die einfache Frage "Wie installiere ich Python" ist sudo apt-get install python, ist die kompliziertere Antwort "wie man das installiert neueste Python ", die Implikation ist" from source ". Sie haben das gleiche Problem auf jedem Betriebssystem, es sei denn, Sie installieren vorkompilierte Binärdateien von einem Drittanbieter, die wiederum auf jedem Betriebssystem riskant ist (und variiert zwischen verschiedenen Betriebssystemen) Auch diese Antwort stammt aus dem Jahr 2012, für neuere Hinweise siehe askubuntu.com/questions/101591/ ... - michael


Es sei denn, Sie haben wirklich einen brennenden Wunsch, es selbst zu kompilieren, ist der bevorzugte Weg, das zu verwenden DeadSnakes PPA um Versionen von Python zu installieren, die standardmäßig nicht enthalten sind:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python2.7

Andere Versionen, wie z python2.4 oder python3.6usw. sind ebenfalls verfügbar.


159
2018-02-05 14:40



Programmhinweis: Wenn Sie unter 10.04 sind, müssen Sie möglicherweise python-software-properties vor der Verwendung von add-apt-repository installieren. - Craig Maloney
Es wird empfohlen, Python in Ihrer lokalen Umgebung zu erstellen, anstatt es aus vorinstallierten Binärdateien zu installieren - pylover
+1 :) really have a burning desire to compile it yourself - Watt
Verpasst, um das zu erwähnen: 1. der ppa ist nicht offiziell unterstützt, also ist der sicherste Weg, aus der Quelle zu bauen. 2. Dies wird zu einem globalen Python führen,sudoEr kann keine Pakete ändern oder installieren, keine lokale. 3. Mehrere Pythons können lokal an verschiedenen Orten installiert werden, indem von der Quelle aus gebaut wird. - Ioannis Filippidis
apt-get install python2.7Dies installiert die binäre python2.7 anstelle von Python ... hässlich !! - Dhawal


Fortsetzung dieser Dokumentation für die neuesten Ubuntu-Versionen1 : Für Ubuntu 16.04.1 Server ist das Standard-Python Version 3.5 und Python 2.7 ist nicht standardmäßig installiert. Bei einer Neuinstallation (beachten Sie, dass es nicht einmal eine python ausführbar):

$ type python3 python2 python 
python3 is /usr/bin/python3
-bash: type: python2: not found
-bash: type: python: not found

$ python3 --version 
Python 3.5.2

$ python --version 
The program 'python' can be found in the following packages:
 * python-minimal
 * python3
Try: sudo apt install <selected package>

Hinweis: bevor Sie fortfahren, werden Sie wahrscheinlich eine schnelle machen wollen sudo apt-get update, sudo apt-get upgrade, und sudo apt-get dist-upgrade (Bitte beachten Sie genau, was diese Befehle tatsächlich tun; ich nehme hier eine Neuinstallation an.)

Die Installation von Python 2.7 ist so einfach wie:

$ sudo apt-get install python2.7

Die erste Ausgabe von Python 2.7 ist wie folgt:

$ sudo apt-get install python2.7
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libpython2.7-minimal libpython2.7-stdlib python2.7-minimal
Suggested packages:
  python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
  libpython2.7-minimal libpython2.7-stdlib python2.7 python2.7-minimal
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 3,735 kB of archives.
After this operation, 15.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
...etc, etc...

Nach der Installation von Python 2.7,

$ type python3 python2.7 python3.5 python2 python
python3 is /usr/bin/python3
python2.7 is /usr/bin/python2.7
python3.5 is /usr/bin/python3.5
bash: type: python2: not found
bash: type: python: not found

Aber es gibt immer noch ein Problem, da Sie PyPI-Module noch nicht über installieren können pip - Wenn Sie z. B. ein jupyter Notebook oder das neueste scipy oder numpy (etc) möchten, sollten Sie es installieren pip und dann pip install diese und immer noch zu drehen apt-get um irgendwelche benötigten zu installieren System Abhängigkeiten, wie Graphviz oder Core-System-Bibliotheken.

$ type pip3 pip2 pip
bash: type: pip3: not found
bash: type: pip2: not found
bash: type: pip: not found

$ python3 -m pip --version 
/usr/bin/python3: No module named pip

Also, um Pip wieder zu installieren, ist es so einfach wie sudo apt-get install python-pip :

$ sudo apt-cache search -n pip | egrep '^python[0-9]*-pip'
python-pip - alternative Python package installer
python-pip-whl - alternative Python package installer
python3-pip - alternative Python package installer - Python 3 version of the package

Du wirst beides brauchen python-pip für die Python 2.7 pip und das python3-pip für die Python 3 pip. Die Installation über apt-get ist sicher, die erforderlichen Abhängigkeiten zu installieren; Hier ist z. B. die Ausgabe für die Installation von Pip2:

$ sudo apt-get install python-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  binutils build-essential dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev
  libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev
  libgomp1 libitm1 liblsan0 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7
  libpython2.7-dev libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make
  manpages-dev python python-all python-all-dev python-dev python-minimal python-pip-whl
  python-pkg-resources python-setuptools python-wheel python2.7-dev
Suggested packages:
  binutils-doc debian-keyring g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib
  autoconf automake libtool flex bison gdb gcc-doc gcc-5-multilib gcc-5-locales libgcc1-dbg
  libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg
  libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg glibc-doc libstdc++-5-doc make-doc python-doc
  python-tk python-setuptools-doc
The following NEW packages will be installed:
  binutils build-essential dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev
  libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev
  libgomp1 libitm1 liblsan0 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7
  libpython2.7-dev libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make
  manpages-dev python python-all python-all-dev python-dev python-minimal python-pip
  python-pip-whl python-pkg-resources python-setuptools python-wheel python2.7-dev
0 upgraded, 49 newly installed, 0 to remove and 0 not upgraded.
Need to get 61.1 MB of archives.
After this operation, 169 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
...etc...

Eine interessante Sache passiert als Folge davon: Sie haben jetzt den "Standard" (und PEP empfohlen) python2 und python3 (das sind nur symbolische Links zu Python 2.7 und Python 3.5):

$ type python3 python2 python python2.7 python3.5 
python3 is /usr/bin/python3
python2 is /usr/bin/python2
python is /usr/bin/python
python2.7 is /usr/bin/python2.7
python3.5 is /usr/bin/python3.5

Du wirst es auch wollen sudo apt-get install python3-pip; bevor Sie installieren, haben Sie:

$ type pip pip2 pip3
pip is /usr/bin/pip
pip2 is /usr/bin/pip2
-bash: type: pip3: not found

$ python2 -m pip --version 
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ python3 -m pip --version 
/usr/bin/python3: No module named pip

Nach der Installation pip3,

$ sudo apt-get install python3-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libpython3-dev libpython3.5-dev python3-dev python3-setuptools python3-wheel python3.5-dev
Suggested packages:
  python-setuptools-doc
The following NEW packages will be installed:
  libpython3-dev libpython3.5-dev python3-dev python3-pip python3-setuptools python3-wheel python3.5-dev
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 38.0 MB of archives.
After this operation, 55.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
...etc...

Die resultierenden Versionen:

$ type python python2 python3 pip pip2 pip3
python is /usr/bin/python
python2 is hashed (/usr/bin/python2)
python3 is hashed (/usr/bin/python3)
pip is /usr/bin/pip
pip2 is /usr/bin/pip2
pip3 is /usr/bin/pip3

$ pip --version 
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ pip3 --version 
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

$ python2 -m pip --version 
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ python3 -m pip --version 
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

Und noch eine letzte Sache, bevor Sie mit der Installation all Ihrer bevorzugten Python-PyPI-Module beginnen können: Sie werden wahrscheinlich Pip selbst aktualisieren müssen (sowohl Pip2 als auch Pip3, separat; auch ist es egal, ob pip wird über die aufgerufen python ausführbare Dateien oder die pip ausführbare Dateien, in denen die eigentlichen Upgrades gespeichert sind /usr/lib):

$ sudo -H python2 -m pip install --upgrade pip
...
$ sudo -H python3 -m pip install --upgrade pip
...

Sie können jetzt entweder das eigenständige Programm ausführen pip oder die gebündelte Version python (über python -m pip {command}).


[1] Historische Zusammenfassung: älteres Ubuntu hatte nur Python 2.6, also alle verschiedenen Methoden um Python 2.7+ zu installieren. Später, nachdem Python 2.7 zu den öffentlichen Repositories hinzugefügt wurde, hatten wir immer noch die gleiche Herausforderung, das neueste Python 2.7 mit den neuesten Fixes zu installieren, was (zu) häufig notwendig war. Die Situation ist heute viel besser / einfacher: Die aktuellen Python 2.7 & 3.5 (im Grunde die einzigen zwei Python-Plattformversionen, die Leute interessieren), die jetzt in den öffentlichen Repos sind, sind sehr stabil, so dass wir uns wirklich nur darum kümmern müssen, das Neueste zu installieren Python Modulenicht das Neueste Python. Jetzt ist das Python "neuste Versionsproblem" verschoben teilweise aus dem Betriebssystem repos & apt und in PyPI & pip.)


24
2017-09-29 08:50



Befolgen Sie diese Anweisungen auf Ubuntu 16.04.1 LTS erfolgreich Python 2.7 und pip wie folgt einrichten: sudo apt-get install python2.7; sudo apt-get installieren python-pip; sudo -H Python2 -m pip installieren --upgrade pip; # Überprüfung der Version: $ pip --version -> pip 9.0.1 von /usr/local/lib/python2.7/dist-packages (python 2.7); $ python --version -> Python 2.7.12 - Robert Lujo
Wirklich hilfreiche Antwort - vielen Dank! - Failed Scientist
Entschuldige meine Unwissenheit, aber darf ich wissen, was "Hashed" bedeutet, wenn ich Python-Versionen zeige? - Failed Scientist
@TalhaIrfan Es ist eine gute Frage (und, wenn Sie eine vereinfachte Antwort erlauben): Wenn ein Befehl in bash eingegeben wird (wie mit den meisten Shells), könnte die cmd ein Alias, eine Funktion oder eine ausführbare Datei in der sein $PATH. Das env var PATH ist eine lange Liste von Verzeichnissen mit buchstäblich Tausenden von Dateien darin. Um das Auffinden der ausführbaren Datei zu beschleunigen, verwendet die Shell eine zwischengespeicherte Hashtabelle für eine schnelle Suche. Es kann veralten, so dass "hashed" Sie wissen lässt, dass es sich an diesen Befehl erinnert, der dieser ausführbaren Datei zugeordnet ist unix.stackexchange.com/questions/5609/... - michael
@gaia möchten Sie vielleicht eine separate Frage stellen, da mehr und mehr benötigt werden, um es herauszufinden (oder wenn sich etwas geändert hat, seit ich das geschrieben habe). Vielleicht verifiziere das zuerst beide  pip (2.7) & pip3 (3.x) wurden vollständig installiert / aufgerüstet, und nicht nur das erstere - d.h. sudo apt-get install python-pip python3-pip und sudo -H python2 -m pip install --upgrade pip und sudo -H python3 -m pip install --upgrade pip  ... oder wenn es wirklich ein Berechtigungsproblem ist (angezeigt durch "es funktioniert mit Sudo"), dann wird es etwas schwieriger zu finden sein. - michael


12.04

Wenn Sie folgen Achus Antwort, dann der Begriff libread5-dev sollte geändert werden in libreadline-gplv2-dev. Also wäre der vollständige Befehl:

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

11
2017-07-26 14:37





Sie können es auch herunterladen und installieren Pyenv

#Install Pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
export PATH=~/.pyenv/bin:/usr/local/hadoop/bin/:$PATH
echo 'export PYENV_ROOT="~/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

#Install Python
pyenv install 2.7.8
pyenv global 2.7.8

pyenv install 3.4.5
pyenv global 3.4.5

2
2018-03-30 07:38



Dies ist der sauberste Weg, um eine wirklich aktuelle Version von Python auf einer älteren Version von Ubuntu zu erhalten. Es enthält auch virtualenv Unterstützung, über die pyenv-virtualenv Plugin, so dass es einfach ist, Anwendungen mit unterschiedlichen Modulanforderungen ohne Konflikte zu installieren. - RichVel
Zwei Warnungen über Pyenv: (1) es funktioniert nur von einer Bash-Shell (oder vielleicht zsh, aber sicherlich nicht Dash, der ist / bin / sh auf Ubuntu), und (2) es erfordert eine Login-Shell (z. bash --login), was z. B. nicht immer leicht zu erreichen ist. von Ansible. Am besten für die interaktive Verwendung, weniger gut für Skriptserver. - RichVel