Comment installer une version différente de Python avec apt-get?

125

Comment puis-je installer une version différente de Python en utilisant apt-get?

Bien entendu, je me rends compte que je peux l’installer à l’aide de la source tar, mais je préférerais ne pas l’installer à partir de la source et utiliser plutôt le gestionnaire de paquets, car c’est pour cela qu’il est. Sûrement, quelque part, des fichiers .deb réputés sont construits pour les dernières versions de Python (pourquoi python.org ne me dépasse pas) que je peux référencer.

Que dois-je faire pour les référencer et quels problèmes pourrait-il créer lors de la mise à niveau vers la version suivante?

S'il n'y a pas d'autre moyen que de compiler à partir des sources, y a-t-il un (pseudo) paquet que je puisse installer qui fournisse toutes les dépendances nécessaires sans devoir rechercher et installer chacun individuellement? Pour que je ne reçoive pas:

The necessary bits to build these optional modules were not found:
_bz2                  _curses               _curses_panel      
_dbm                  _gdbm                 _lzma              
_sqlite3              _ssl                  _tkinter           
readline              zlib  
Harry
la source
avez-vous déjà eu E: Couldn't find any package by regex 'python3.5'et donc échoué à installer via apt-get install python3.5?
Charlie Parker
question similaire: askubuntu.com/questions/310441/…
Charlie Parker
quelques bonnes suggestions ici: quora.com/…
Charlie Parker
1
@CharlieParker Avez-vous essayé d'installer Anaconda ?
M. Becerra

Réponses:

169

Felix Krull gère une PPA offrant pratiquement n'importe quelle version de Python (sérieusement, il existe une version 2.3.7 pour les couleurs vives ...) de nombreuses versions d'Ubuntu à l' adresse https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa .

Faites comme d'habitude:

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

Cela python3.4n'écrasera pas votre existant qui est toujours lié symboliquement python3.

NE PAS changer le lien symbolique! Apparemment, de nombreuses fonctions système ne fonctionnent pas correctement avec python3.5.

J'ai essayé cela et par la suite je n'ai pas pu ouvrir un terminal, un programme de mise à jour logicielle, ...

cd /usr/bin
sudo rm python3

La mise à niveau vers Wily adaptera le méta-package auquel python3pointer python3.5. Je ne m'attends pas à une casse, mais à ce stade, le référentiel étranger n'est plus nécessaire. Donc, pour être vraiment en sécurité, vous pouvez purger le PPA avant d'effectuer la mise à niveau.

Néphente
la source
5
pour noob, ne faites pas de lien symbolique! pas non plus symlinking signifie simplement que vous devez taper python3.5 à partir de la ligne de commande pour exécuter python 3.5
Chris Hawkes
4
Pourriez-vous me dire comment utiliser le pip de la version 3.4 avec cette version 3.5?
Groosha
2
@ kondra007 J'ai suivi les instructions de pip.pypa.io/fr/stable/installing (veuillez lire l'avertissement ici) et ces deux commandes wget https://bootstrap.pypa.io/get-pip.py; sudo python3.5 get-pip.pym'ont fourni un pip fonctionnel pour Python 3.5, mais pip3.4 ne fonctionne plus. Si quelqu'un sait mieux, veuillez commenter
dimanche
2
Définissez également python3.5 par défaut ~$ vim ~/.bashrcet ajoutez-le alias python=python3.5. alors~$source ~/.bashrc
Krishnadas PC
1
Astuces: si add-apt-repository: command not found, lancez apt-get install software-properties-common python-software-propertiespour installer
Mithril
35

Ce lien sur Youtube m'a aidé à l'installer.

Les étapes sont les suivantes:

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

Pour vérifier si python est installé, tapez python3.5sinon:

sudo ln -fs /opt/Python-3.5.0/Python /usr/bin/python3.5
joydeep bhattacharjee
la source
3
OP a déclaré qu'il ne souhaitait pas compiler à partir de la source
Michael Bates
3
Oui, tu as raison. Compiler à partir des sources peut également introduire des problèmes de dépendance plus tard. Mais c'est comme ça que je l'ai résolu. S'il y a un meilleur moyen, j'aimerais vraiment savoir.
joydeep bhattacharjee
5
Considérez ./configure --enable-optimizations stackoverflow.com/questions/41405728/…
warvariuc
1
@CharlieParker car Python n'est pas conçu pour un système d'exploitation spécifique. C'est censé être exécuté sur n'importe quelle plate-forme. Pour Linux, cela signifie que chaque version doit être compilée et distribuée pour chaque version de chaque distribution Linux (il en existe de nombreuses), ou bien elle distribue le code source et permet à l'utilisateur de le compiler lui-même dans l'environnement dans lequel il se trouvera. utilisé. Ce dernier est beaucoup plus réalisable.
CJStuart
2
Vous avez également besoin du compilateur c / c ++ deapt-get install build-essential
bato3
13

Il suffit de suivre ces étapes (testées):

Étape 1 - Installation des packages requis

Utilisez la commande suivante pour installer les éléments prérequis pour Python avant de l’installer.

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

Étape 2 - Téléchargez Python 3.5.2

Téléchargez Python en utilisant la commande suivante depuis le site officiel de Python. Vous pouvez également télécharger la dernière version à la place de celle spécifiée ci-dessous.

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

Maintenant, extrayez le paquet téléchargé.

sudo tar xzf Python-3.5.2.tgz

Étape 3 - Compiler la source Python

Utilisez le jeu de commandes ci-dessous pour compiler le code source Python sur votre système à l’aide de altinstall.

cd Python-3.5.2
sudo ./configure
sudo make altinstall

make altinstallest utilisé pour empêcher le remplacement du fichier binaire python par défaut /usr/bin/python.

Étape 4 - Vérifiez la version Python

Vérifiez la dernière version installée de python en utilisant la commande ci-dessous.

$ python3.5 -V

Python 3.5.2

Source .

Bilal
la source
2
+1 pour utiliser altinstall par défaut. Il n'y a pas beaucoup de scénarios réels où vous pouvez vivre avec une seule version. Même des systèmes avec Python3 par défaut, vous pouvez être obligé d'installer Python inversé -> Python2 à la place ou d'ajouter Python2.
erm3nda
1
J'ai eu une erreur comme décrit ici - bugs.python.org/issue31652 a dû être exécuté sudo apt-get install libffi-devpour la résoudre.
Nishan Chathuranga
J'ajouterais également sudo apt-get install liblzma-devpour activer le support de lzma.
v.grabovets le
6

Autant que je sache, au moins dans un conteneur Docker, on peut définitivement apt-getutiliser Python 3.

J'ai d'abord rencontré un conteneur Ubuntu avec conteneur:

docker run -it --rm ubuntu:latest bash

puis, pour une raison quelconque, il fallait mettre à jour certains éléments d'ubuntu, ce que j'ai fait (à l'intérieur du conteneur):

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

et puis j'ai simplement installé python3 et il semble qu'il ait automatiquement obtenu python 3.5:

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

et pour tester si pip fonctionne, nous pouvons télécharger quelque chose:

pip3 install tensorflow

tout semble bien fonctionner pour moi.

Remarque importante: il semble que si vous avez déjà installé Python 3.4, apt-get install python3cela ne fonctionnera pas, car il indique que vous l'avez déjà. Il semble que cela soit l’un de mes problèmes car je partais d’une image de menu fixe de tensorflow (en particulier gcr.io/tensorflow/tensorflow:latest-devel-py3) et que quelque chose dans cette image (j’assume qu’ils ont déjà python 3.4 mais c’est peut-être autre chose) ne m’a pas permis de mettre à jour mon python pour obtenir python 3.5.


crédit: j'ai découvert cela lorsque j'ai posé la question suivante: https://stackoverflow.com/questions/42122826/can-one-use-python-3-5-in-a-docker-container-based-out-of-the -tensorflow-docker


Note: on peut aussi simplement installer Anaconda. Pour un exemple de docker, on peut faire:

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

depuis leur site officiel: https://hub.docker.com/r/continuumio/anaconda3/

Cette solution installe Python 3.6, mais je suis sûr que si vous y regardez, vous pouvez obtenir python 3.5 si c'est ce que vous voulez.

Remarque: vous devriez probablement utiliser un environnement virtuel comme env virtuel ou conda / anaconda, sauf si vous utilisez docker de toute façon. Je voulais juste rappeler aux gens.

Charlie Parker
la source
1
"dans un conteneur docker" est une déclaration très générique: tout dépend de l'image sur laquelle le conteneur est basé, par exemple la version d'Ubuntu. De plus, il peut y avoir des versions mineures comme 3.5 ou 3.6 qui ne sont pas disponibles dans une version d'Ubuntu (14.04 par exemple)
giorgiosironi
2

Un certain nombre de nouvelles distributions python disponibles à installer via apt-get sont répertoriées dans les packages Ubuntu.

à titre d'exemple, les versions suivantes sont actuellement disponibles:

python2.7

python3.2

python3.4

python3.5

python3.6

La disponibilité varie avec la version Ubuntu dans une certaine mesure. Par exemple, 3.5 est disponible pour Xenial, Yakkety et Zesty et 3.6 pour Yakkety et Zesty, mais vous devez activer le référentiel Univers s'il n'est pas activé pour les obtenir via apt-get. Pour vérifier la disponibilité de votre version d'Ubuntu, consultez les liens ci-dessus.

Un coup d'œil rapide indique que cette réponse est également valable, car PPA en a 3,6 même pour Trusty.

Elder Geek
la source
les versions Python disponibles dans Ubuntu Repo ne sont pas la dernière version de Python .
Yaitloutou
@yaitloutou La question dit "plus récent" et non "plus récent" N'hésitez surtout pas à écrire une meilleure réponse.
Elder Geek
Vous avez raison, mais depuis plus récent par rapport à ce qui n'est pas précisé, je l'ai interprété comme le plus récent :)
il y a
@yaitloutou Sentez-vous libre et écrivez une meilleure réponse! Je suis sûr que ce serait apprécié.
Elder Geek
Je viens juste de commencer à être actif ici et j'apprends toujours. Désolé si vous trouvez mon commentaire sur votre réponse importune
yaitloutou
0

J'envisagerais d'utiliser des environnements virtuels au lieu d'installer des versions de python via apt-get.

L’utilisation d’environnements virtuels, voir ici, est une bonne pratique de développement avec python. Ils vous permettent d'isoler votre environnement python des versions python installées sur le système.

De plus, vous n'avez pas besoin d'avoir un accès sudo lors de l'installation d'une bibliothèque (via pip, etc.).

devrimbaris
la source
11
Je pense que vous devez installer la version de python de votre choix avant de pouvoir l’utiliser dans un environnement virtuel.
Nzbuu
1
Vous installez la version souhaitée de python dans l’environnement virtuel, puis vous modifiez votre chemin associé au python en exécutant simplement le script "activer" dans un environnement virtuel.
devrimbaris
C’est en fait exactement ce que je veux faire - la toute première chose que j’ai essayé de faire après avoir suivi la réponse de @ Nephente a été de pointer du doigt virtualenv -p. Mais cela a explosé avec "ImportError: impossible d'importer le nom 'HTTPSHandler'".
Michael Scheper
1
pourquoi cela a-t-il été voté? envs virtuels fonctionnent généralement bien.
Charlie Parker
Comment installez-vous un env virtuel dans Ubuntu (comme dans votre suggestion) mais avec Python 3.5?
Charlie Parker
0

Conda est activement mis à jour et vous permet d’installer plusieurs versions de Python dans des environnements gérés sans l’ennui de tout configurer vous-même. Les problèmes de cheminement des extensions binaires ont peut-être été résolus dans de nombreuses chaînes de dépendance / pip gérées par anaconda qu’il utilise.

RobotHumans
la source