Comment installer la dernière version de Python 2.7.X ou 3.X sur Ubuntu?

Je souhaite installer la dernière archive TAR Python sur Ubuntu, téléchargée à partir de http://python.org/download/.

Est - ce une bonne façon d'installer?

./configuremakemake install

Sinon, comment faire?

Tout d'abord, installez quelques dépendances:

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

Ensuite, téléchargez en utilisant la commande suivante:

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

Extraire et aller dans le répertoire:

tar -xvf Python-$version.tgzcd Python-$version

Maintenant, installez en utilisant la commande que vous venez d'essayer, en utilisant checkinstall au lieu de cela pour le rendre plus facile à désinstaller si nécessaire:

./configuremakesudo checkinstall

Changement version vers la version dont vous avez besoin (version=2.7.1 ou version=3.6.0, exemple).

À moins que vous n'ayez vraiment le désir ardent de le compiler vous-même, le moyen préféré est d'utiliser le Serpents morts PPA pour installer des versions de Python qui ne sont pas incluses par défaut:

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

D'autres versions, telles que python2.4 ou python3.6, etc. sont également disponibles.

Continuer à documenter cela pour les dernières versions d'Ubuntu1 : pour le serveur Ubuntu 16.04.1, Python par défaut est la version 3.5 et Python 2.7 est pas installé par défaut. Sur une nouvelle installation (notez qu'il n'y a même pas de python exécutable):

$ 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 * python3Try: sudo apt install <selected package>

Remarque: avant de continuer, vous voudrez probablement faire un rapide sudo apt-get update, sudo apt-get upgrade, et sudo apt-get dist-upgrade (veuillez noter exactement ce que font ces commandes; je suppose une nouvelle installation ici.)

L'installation de python 2.7 est aussi simple que:

$ sudo apt-get install python2.7

La sortie initiale de l'installation de python 2.7 est la suivante:

$ sudo apt-get install python2.7Reading package lists... DoneBuilding dependency tree       Reading state information... DoneThe following additional packages will be installed:  libpython2.7-minimal libpython2.7-stdlib python2.7-minimalSuggested packages:  python2.7-doc binutils binfmt-supportThe following NEW packages will be installed:  libpython2.7-minimal libpython2.7-stdlib python2.7 python2.7-minimal0 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...

Après avoir installé python 2.7,

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

Mais il y a toujours un problème, car vous ne pouvez pas encore installer les modules PyPI via pip -- par exemple, si vous voulez jupyter notebook, ou la dernière version de scipy ou numpy (etc.), vous voudrez installer pip et puis pip install ceux-là, et toujours en train de se tourner vers apt-get pour installer tout nécessaire système dépendances, comme graphviz ou les bibliothèques système de base.

$ type pip3 pip2 pipbash: type: pip3: not foundbash: type: pip2: not foundbash: type: pip: not found$ python3 -m pip --version /usr/bin/python3: No module named pip

Donc, pour installer pip, encore une fois, c'est aussi simple que sudo apt-get install python-pip :

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

Vous aurez besoin des deux python-pip pour le Python 2.7 pip et le python3-pip pour le Python 3 pip. L'installation via apt-get est sûr d'installer les dépendances requises; par exemple, voici la sortie pour l'installation de pip2:

$ sudo apt-get install python-pipReading package lists... DoneBuilding dependency tree       Reading state information... DoneThe 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-devSuggested 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-docThe 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-dev0 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...

Une chose intéressante se produit à la suite de cela: vous avez maintenant le "standard" (et le PEP recommandé) python2 et python3 (qui ne sont que des liens symboliques vers python 2.7 et python 3.5):

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

Vous voudrez aussi sudo apt-get install python3-pip; avant d'installer, vous avez:

$ type pip pip2 pip3pip is /usr/bin/pippip2 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

Après l'installation pip3,

$ sudo apt-get install python3-pipReading package lists... DoneBuilding dependency tree       Reading state information... DoneThe following additional packages will be installed:  libpython3-dev libpython3.5-dev python3-dev python3-setuptools python3-wheel python3.5-devSuggested packages:  python-setuptools-docThe following NEW packages will be installed:  libpython3-dev libpython3.5-dev python3-dev python3-pip python3-setuptools python3-wheel python3.5-dev0 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...

Les versions résultantes:

$ type python python2 python3 pip pip2 pip3python is /usr/bin/pythonpython2 is hashed (/usr/bin/python2)python3 is hashed (/usr/bin/python3)pip is /usr/bin/pippip2 is /usr/bin/pip2pip3 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)

Et une dernière chose avant de pouvoir commencer à installer tous vos modules python PyPI préférés: vous devrez probablement mettre à niveau pip lui-même (pip2 et pip3, séparément; de plus, peu importe si pip est invoqué via le python exécutables ou les pip exécutables, les mises à niveau réelles sont stockées dans /usr/lib):

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

Vous pouvez maintenant exécuter l'un ou l'autre des programmes autonomes pip ou la version fournie dans python (par python -m pip {command}).


[1] Récapitulatif historique: l'ancien Ubuntu n'avait que Python 2.6, donc toutes les différentes méthodes pour installer Python 2.7+. Plus tard, après l'ajout de Python 2.7 aux référentiels publics, nous avons toujours eu le même défi d'installer le dernier Python 2.7 avec les dernières corrections, ce qui était (trop) souvent nécessaire. La situation aujourd'hui est bien meilleure / plus simple: les versions actuelles de Python 2.7 et 3.5 (en gros les deux seules versions de la plate-forme Python qui intéressent les gens) qui sont maintenant dans les dépôts publics sont très stables, donc maintenant nous n'avons vraiment qu'à nous soucier d'installer le dernier python module, pas le dernier Python. Alors maintenant, le "problème de la dernière version" de Python a été déplacé partiellement hors des dépôts du système d'exploitation & apt et dans PyPI & amp; pip.)

12.04

Si vous suivez La réponse d'Achu, puis le terme libread5-dev devrait être changé en libreadline-gplv2-dev. Ainsi, la commande complète serait:

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

Vous pouvez également le télécharger et l'installer via pyenv

#Install Pyenvgit clone https://github.com/pyenv/pyenv.git ~/.pyenvexport PATH=~/.pyenv/bin:/usr/local/hadoop/bin/:$PATHecho 'export PYENV_ROOT="~/.pyenv"' >> ~/.bash_profileecho 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profileecho 'eval "$(pyenv init -)"' >> ~/.bash_profile#Install Pythonpyenv install 2.7.8pyenv global 2.7.8pyenv install 3.4.5pyenv global 3.4.5

Surtout un miroir de cette réponse avec une intro peaufinée

Je recommanderais pyenv. Il automatise le processus de construction en plus d'installer les dépendances d'en-tête (voir ci-dessous). Vous pouvez construire et installer une nouvelle (ou ancienne) version de Python en disant simplement pyenv install 3.6.0. Tout s'exécute en tant qu'utilisateur, vous n'avez donc pas à vous soucier de gâcher le Python utilisé par Ubuntu lui-même.

Contrairement à certaines des options basées sur apt-repo (par exemple deadsnakes), cela fonctionnera généralement le jour même d'une publication après un pyenv update parce que vous n'avez pas besoin d'attendre que quelqu'un d'autre l'emballe. Voir toutes les versions avec lesquelles vous pouvez installer pyenv install --list

Installer pyenv

  1. Installez les outils et les en-têtes nécessaires à la construction de CPythons (les Pythons exotiques comme PyPy ou Jython peuvent avoir d'autres dépendances). Git est utilisé par pyenv, en plus il permet également les builds/installations de branches sources, vous pouvez donc installer n'importe quelle version 3.8 en ce moment, c'est-à-dire la branche master de CPython fraîchement sortie de GitHub:

    sudo apt-get install -y gitsudo apt-get install -y build-essential libbz2-dev libssl-dev libreadline-dev \                        libffi-dev libsqlite3-dev tk-dev# optional scientific package headers (for Numpy, Matplotlib, SciPy, etc.)sudo apt-get install -y libpng-dev libfreetype6-dev    
  2. Exécutez le script d'installation (installe pyenv et quelques plugins pyenv très utiles de l'auteur original; voir ici pour en savoir plus)

    curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
  3. Ajoutez des lignes d'initialisation à votre ~/.profile ou ~/.bashrc (il le mentionne à la fin du script d'installation):

    export PATH="~/.pyenv/bin:$PATH"eval "$(pyenv init -)"eval "$(pyenv virtualenv-init -)"
  4. Redémarrez votre shell (fermer et ouvrir ou exec $SHELL) ou rechargez le script de profil. (avec par ex. source ~/.bashrc)

Terminé!

Configuration d'un environnement

Ne pas toucher au système Python (généralement une mauvaise idée; les services au niveau du système d'exploitation peuvent dépendre de certaines versions de bibliothèques spécifiques,etc.) créez votre propre environnement, c'est facile! Encore mieux, non sudo, pour cela ou pip installe!

  1. Installez votre version préférée de Python (cela téléchargera la source et la construira pour votre utilisateur, aucune entrée requise)

    pyenv install 3.6.0
  2. Faites-en un virtualenv pour pouvoir en créer d'autres plus tard si vous le souhaitez

    pyenv virtualenv 3.6.0 general
  3. Rendez-le globalement actif (pour votre utilisateur)

    pyenv global general
  4. Faites ce que vous voulez avec Python / pip, etc. C'est à toi.

Si vous souhaitez nettoyer vos bibliothèques plus tard, vous pouvez supprimer le virtualenv (pyenv uninstall general) ou en faire un nouveau (pyenv virtualenv 3.6.0 other_proj). Vous pouvez également avoir des environnements actifs par répertoire: pyenv local other_proj laissera tomber un .python-version fichier dans votre dossier actuel et chaque fois que vous appelez Python ou les utilitaires Python installés par pip à partir de celui-ci ou sous celui-ci, ils seront compilés par pyenv.

Dépannage

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

    1. Vérifiez votre $PATH, il devrait y avoir une entrée qui se termine par quelque chose comme .pyenv/bin. S'il manque, assurez-vous que vous avez suivi #3 ET #4 (redémarrez votre shell) sous Installer pyenv ci-dessus.
  • pyenv: no such command 'virtualenv'

    1. Si vous n'avez pas utilisé le script d'installation, vous n'avez probablement installé que le package pyenv racine. Voir pyenv-virtualenv pour obtenir des instructions sur l'ajout du plugin
    2. Si vous avez utilisé le script d'installation, vérifiez s'il s'affiche avec pyenv commands.

À un moment donné, j’imagine que cela a été demandé afin d’installer une version nouvelle de python sur Ubuntu. Maintenant, il est nécessaire d’installer une version _ plus ancienne _ de python sur Ubuntu (car nous avons encore besoin de python 2.7 pour beaucoup de choses)… tl; dr: cette réponse n’est plus à jour/correcte. Au lieu de cela, en supposant que python3 est installé par défaut (et peut-être un python2 minimal.x), puis exécutez: 'sudo apt-get install python-2.7 python-pip`

@jargonjunkie vous êtes hors sujet, mais correct. Si la question est _ " comment installer python 2.7 sur ubuntu 16.04+" _ ce qui est le cas (puisque 16.04 est maintenant disponible, ce qui est mon point), alors vous avez simplement sudo apt-get install python27’. Ce n’est pas seulement plus facile, c’est la seule réponse correcte, car c’est la seule façon de gérer l’installation de modules python via apt-get et leurs dépendances à leur tour.

@michael_n de quoi parlez-vous? la compilation à partir des sources ne rend pas cette réponse incorrecte ou obsolète. c’est juste une méthode différente. vous pouvez utiliser apt pour automatiser le processus pour vous si nécessaire.

tu utilises ce dont tu as besoin. Je ne vois pas vraiment en quoi cela soutient votre affirmation selon laquelle cela est dépassé. comme vous l’avez dit vous-même, vous l’utilisez quand vous en avez besoin car il se peut qu’il ne soit pas disponible. Par exemple, le sous-système Windows pour Linux utilise des packages logiciels datés même si la distribution est ubuntu 16.04.1 (bêta) et utilise python2.6.2, et python3 même si le courant est python2.7.12. Dans ce cas, je devrais compiler si je veux des paquets à jour

j’espère que cela aide à illustrer (réponse ajoutée). l’écosystème python est très particulier / délicat, et vous pouvez facilement entrer dans “l’enfer des dépendances” si vous ne construisez pas soigneusement votre environnement python software installation - How do I install the latest Python 2.7.X or 3.X on Ubuntu? - Ask Ubuntu

tu as totalement raison. vous pouvez facilement indexer les dépendances à partir du site. et en fait, le sous-système utilise 14.04.5 et utilise 2.7.2 par défaut (avec w py3 bien sûr). apt-get n’est peut-être pas toujours une option et il est utile de montrer que dpkg est là. ceci est utile pour les scénarios personnalisés où ces options peuvent ne pas être disponibles et bien que ce ne soit pas toujours le meilleur choix (évidemment, si vous pouvez utiliser apt, vous devriez utiliser apt). J’ai quelques environnements personnalisés qui ne supportent pas beaucoup de paquets debian, donc je me retrouve à utiliser dpkg assez souvent. savoir comment l’utiliser à la rigueur peut être extrêmement précieux.