Wie installiere ich den neuesten Python 2.7.X oder 3.X unter Ubuntu?

164

Ich möchte den neuesten Python-Tarball auf Ubuntu installieren, der von link heruntergeladen wird.

Ist dies eine korrekte Installationsmethode?

./configure
make
make install

Wenn nicht, wie mache ich das?

    
mohammads 05.02.2012, 13:02
quelle

6 Antworten

186

Installieren Sie zunächst 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

Dann mit folgendem Befehl herunterladen:

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

Extrahieren Sie und gehen Sie in das Verzeichnis:

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

Installieren Sie nun den Befehl, den Sie gerade ausprobiert haben. Verwenden Sie stattdessen checkinstall , um die Deinstallation bei Bedarf zu erleichtern:

./configure
make
sudo checkinstall

Ändern Sie version in die gewünschte Version (z. B. version=2.7.1 oder version=3.6.0 ).

    
Achu 05.02.2012, 13:20
quelle
165

Wenn Sie nicht wirklich den Wunsch haben, es selbst zu kompilieren, verwenden Sie die DeadSnakes PPA Installieren Sie Python-Versionen, die nicht standardmäßig enthalten sind:

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

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

    
brousch 05.02.2012 15:40
quelle
24

Weitere Dokumentation für die neuesten Ubuntu-Versionen 1 : Für Ubuntu 16.04.1-Server ist Python die Standardversion 3.5, und Python 2.7 wird standardmäßig nicht installiert . Bei einer Neuinstallation (beachten Sie, dass es nicht einmal eine ausführbare Datei python gibt):

$ 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, sollten Sie wahrscheinlich eine schnelle Ausführung von sudo apt-get update , sudo apt-get upgrade und sudo apt-get dist-upgrade ausführen (bitte beachten Sie genau, was diese Befehle tatsächlich tun; ich gehe hier von einer Neuinstallation aus. )

Die Installation von Python 2.7 ist so einfach wie:

$ sudo apt-get install python2.7

Die erste Ausgabe der Installation von Python 2.7 lautet 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

Es gibt jedoch immer noch ein Problem, da Sie PyPI-Module noch nicht über pip installieren können. Wenn Sie beispielsweise ein jupyter-Notebook oder das neueste scipy oder numpy (etc) benötigen, sollten Sie% co_de installieren % und dann pip diese, und wenden sich weiterhin an pip install , um alle erforderlichen System Abhängigkeiten wie graphviz oder Kernsystembibliotheken zu installieren.

$ 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

So ist es wieder genauso einfach, pip zu installieren: apt-get :

$ 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

Sie benötigen sowohl sudo apt-get install python-pip für Python 2.7 python-pip als auch pip für Python 3 python3-pip . Bei der Installation über pip werden die erforderlichen Abhängigkeiten sicher installiert. Hier ist beispielsweise 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...

Daraus ergibt sich eine interessante Sache: Sie haben jetzt den "Standard" (und von PEP empfohlen) apt-get und python2 (die nur Symlinks zu Python 2.7 und Python 3.5 sind):

$ 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

Sie möchten auch python3 ; Vor der Installation 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 von sudo apt-get install python3-pip

$ 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 Sache, bevor Sie mit der Installation all Ihrer bevorzugten Python-PyPI-Module beginnen können: Sie müssen wahrscheinlich pip selbst aktualisieren (sowohl pip2 als auch pip3 separat; außerdem spielt es keine Rolle, ob pip3 der Fall ist Über die ausführbaren Dateien pip oder die ausführbaren Dateien python aufgerufen, werden die tatsächlichen Upgrades in pip ):

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

Sie können jetzt entweder das eigenständige /usr/lib oder die in pip gebündelte Version ausführen (über python ).

[1] Historischer Rückblick: älteres Ubuntu hatte nur Python 2.6, also alle Methoden, um Python 2.7+ zu installieren. Später, nachdem Python 2.7 zu den öffentlichen Repositorys hinzugefügt wurde, hatten wir immer noch die gleiche Herausforderung, den neuesten Python 2.7 mit neuesten Fixes zu installieren, was (zu) häufig erforderlich war. Die heutige Situation ist viel besser / einfacher: Der aktuelle Python 2.7 & amp; 3.5 (im Grunde die einzigen zwei Python-Plattformversionen, die die Leute interessieren), die sich jetzt in den öffentlichen Repos befinden, sind sehr stabil, so dass wir uns jetzt wirklich nur noch um die Installation der neuesten -Module von Python kümmern müssen, nicht die neuesten < em> Python . Das Problem mit der neuesten Version von Python ist nun teilweise aus dem Betriebssystem-Repos & amp; python -m pip {command} und in PyPI & amp; apt .)

    
michael 29.09.2016 10:50
quelle
11

12.04

Wenn Sie die Antwort von Achu befolgen, sollte der Begriff libread5-dev in libreadline-gplv2-dev geändert werden. Der vollständige Befehl wäre also:

sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
    
ThatGuy 26.07.2012 16:37
quelle
4

Sie können es auch über pyenv

herunterladen und installieren
#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
    
Whispered 30.03.2017 09:38
quelle
0

Meistens ein Spiegel von dieser Antwort mit einem optimierten Intro

Ich würde pyenv empfehlen. Es automatisiert den Build-Prozess, abgesehen von der Installation der Header-Abhängigkeiten (siehe unten). Sie können eine neue (oder alte) Version von Python erstellen und installieren, indem Sie einfach pyenv install 3.6.0 sagen. Alles läuft wie Ihr Benutzer, so dass Sie sich keine Sorgen machen müssen verwirrt den von Ubuntu selbst verwendeten Python .

Im Gegensatz zu einigen der auf apt-repo basierenden Optionen (z. B. Deadsnakes) funktioniert sie normalerweise am selben Tag nach der Veröffentlichung von pyenv update , da Sie nicht darauf warten müssen, dass eine andere Person sie packt. Sehen Sie sich alle Versionen an, die Sie mit pyenv install --list

installieren können

Installieren Sie pyenv

  1. Installieren Sie Tools und Header, die zum Erstellen von CPythons erforderlich sind (exotische Pythons wie PyPy oder Jython können andere Abhängigkeiten haben). Git wird von pyenv verwendet und ermöglicht außerdem das Erstellen / Installieren von Quellverzweigungen. Sie können also die aktuelle Version 3.8 installieren, d. H. Den Master-Zweig von CPython frisch von GitHub:

    sudo apt-get install -y git
    sudo apt-get install -y build-essential libbz2-dev libssl-dev libreadline-dev \
                            libsqlite3-dev tk-dev
    
    # optional scientific package headers (for Numpy, Matplotlib, SciPy, etc.)
    sudo apt-get install -y libpng-dev libfreetype6-dev    
    
  2. Führen Sie das Installationsskript aus (installiert pyenv und einige sehr nützliche pyenv-Plugins vom ursprünglichen Autor; siehe ) hier für mehr)

    curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
    
  3. Fügen Sie Ihrem ~/.profile oder ~/.bashrc Init-Zeilen hinzu (dies wird am Ende des Installationsskripts erwähnt):

    export PATH="~/.pyenv/bin:$PATH"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
    
  4. Starten Sie Ihre Shell neu (Schließen Sie & amp; open oder exec $SHELL ) oder laden Sie das Profilskript erneut. (beispielsweise mit source ~/.bashrc )

Fertig!

Umgebung einrichten

Um das System nicht zu berühren, wird Python (im Allgemeinen eine schlechte Idee; Dienste auf Betriebssystemebene sind möglicherweise auf bestimmte Bibliotheksversionen angewiesen usw.). Erstellen Sie Ihre eigene Umgebung, es ist einfach! Noch besser, kein sudo , oder pip installiert!

  1. Installieren Sie Ihre bevorzugte Python-Version (dadurch wird die Quelle heruntergeladen und für Ihren Benutzer erstellt, keine Eingabe erforderlich)

    pyenv install 3.6.0
    
  2. Machen Sie es zu einer virtuellen Umgebung, sodass Sie später weitere erstellen können, wenn Sie möchten

    pyenv virtualenv 3.6.0 general
    
  3. Aktiviere es global (für deinen Benutzer)

    pyenv global general
    
  4. Machen Sie mit dem Python / pip usw. was Sie wollen. Es gehört Ihnen.

Wenn Sie Ihre Bibliotheken später bereinigen möchten, können Sie die virtualenv ( pyenv uninstall general ) löschen oder eine neue erstellen ( pyenv virtualenv 3.6.0 other_proj ). Sie können auch Umgebungen pro Verzeichnis aktivieren: pyenv local other_proj legt eine .python-version -Datei in Ihrem aktuellen Ordner ab. Jedes Mal, wenn Sie Python- oder Pip-Installierte Python-Dienstprogramme davon oder darunter aufrufen, werden sie von pyenv umrandet / p>

Fehlerbehebung

  • bash: pyenv: command not found , fish: Unknown command 'pyenv'

    1. Überprüfen Sie Ihre $PATH . Es sollte einen Eintrag geben, der mit .pyenv/bin endet. Wenn es fehlt, vergewissern Sie sich, dass Sie # 3 AND # 4 (Starten Sie Ihre Shell neu) unter Install pyenv oben
    2. befolgt haben
  • pyenv: no such command 'virtualenv'

    1. Wenn Sie das Installationsskript nicht verwendet haben, haben Sie wahrscheinlich nur das root-Paket pyenv installiert. Anweisungen zum Hinzufügen des Plugins
    2. finden Sie unter pyenv-virtualenv
    3. Wenn Sie das Installationsskript verwendet haben, prüfen Sie, ob es mit pyenv commands angezeigt wird.
Nick T 15.10.2018 22:05
quelle

Tags und Links