192 votes

Comment installer une version différente de Python à l'aide d'apt-get ?

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

Je réalise évidemment que je peux installer en utilisant la boule de tar source, mais je préférerais ne pas installer à partir de la source et utiliser plutôt le gestionnaire de paquets, car c'est pour cela qu'il est là. Il y a sûrement un endroit réputé qui construit des fichiers .deb pour les dernières versions de Python (je ne comprends pas pourquoi Python.org ne le fait pas) que je peux référencer.

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

S'il n'y a pas d'autre moyen que de construire à partir des sources, existe-t-il un (pseudo) paquet que je peux installer et qui fournira toutes les dépendances nécessaires sans avoir à les trouver et à les installer individuellement ? Pour que je n'aie pas à le faire :

The necessary bits to build these optional modules were not found:
_bz2                  _curses               _curses_panel      
_dbm                  _gdbm                 _lzma              
_sqlite3              _ssl                  _tkinter           
readline              zlib

245voto

Nephente Points 5045

Felix Krull gère un PPA offrant essentiellement tout de Python (sérieusement, il existe une version 2.3.7 pour vivid...) pour de nombreuses versions Ubuntu à l'adresse suivante 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

Il n'écrasera pas vos données existantes. python3.4 qui est toujours lié par un lien symbolique à python3 .

Au lieu de cela, pour exécuter python3.5, lancez la commande python3.5 (o python3.X pour toute autre version de Python).


Ne changez pas le lien symbolique ! Il y a apparemment de nombreuses fonctions système qui ne fonctionnent pas correctement avec python3.5.

J'ai essayé cela et ensuite je n'ai pas pu ouvrir un terminal, un logiciel de mise à jour,...

cd /usr/bin
sudo rm python3

La mise à jour de Wily adaptera le méta-paquet python3 pour pointer vers python3.5 . Je ne m'attends à aucune casse, mais à ce stade, le référentiel étranger n'est plus nécessaire. Donc pour être vraiment sûr, vous pouvez purger le PPA avant de faire la mise à jour.

54voto

Este Lien 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.5 autre :

sudo ln -fs /opt/Python-3.5.0/Python /usr/bin/python3.5

29voto

Bilal Points 3399

Il suffit de suivre les étapes suivantes (testées) :

Étape 1 - Installation des paquets requis

Utilisez la commande suivante pour installer les 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écharger 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 indiqué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 - Compilation des sources Python

Utilisez l'ensemble des commandes ci-dessous pour compiler le code source Python sur votre système en utilisant altinstall.

cd Python-3.5.2
sudo ./configure
sudo make altinstall

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

Étape 4 - Vérifiez la version de 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 : .

9voto

pyenv

Cette méthode n'utilise pas apt-get mais c'est, je crois, la meilleure option disponible aujourd'hui, car il peut facilement compiler n'importe quelle version de Python à partir des sources pour vous, de sorte que vous n'avez pas à compter sur les PPAs.

https://github.com/pyenv/pyenv

Pyenv vous permet de gérer plusieurs versions de Python sans sudo pour un seul utilisateur, à l'instar de Node.js NVM y Ruby RVM .

Installez Pyenv :

curl https://pyenv.run | bash

Puis ajoutez à votre .bashrc :

export PATH="${HOME}/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

Trouver la version de Python à installer :

pyenv install --list

Installez la version de Python que vous voulez :

# Increase the chances that the build will have all dependencies.
# https://github.com/pyenv/pyenv/wiki/Common-build-problems
sudo apt build-dep python3
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
  libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
  xz-utils tk-dev libffi-dev liblzma-dev python-openssl git

# Build and install a Python version from source.
pyenv install 3.8.0

Liste des versions de Python disponibles :

pyenv versions

Nous avons maintenant :

* system (set by /home/cirsan01/.pyenv/version)
  3.8.0

Sélectionnez une autre version de Python :

pyenv global 3.8.0
python --version
python3 --version

Les deux sorties :

Python 3.8.0

Nous pouvons maintenant procéder à l'installation et à l'utilisation normale des paquets :

pip install cowsay
python -c 'import cowsay; cowsay.tux("Python is fun")'
cowsay 'hello'

Nous pouvons confirmer que tout est installé localement dans notre environnement propre :

python -c 'import cowsay; print(cowsay.__file__)'
which cowsay

Nous voyons que which python pointe vers :

~/.pyenv/shims/python

parce que ~/.pyenv/shims est ajouté à l'avance à PATH avec le rc scripts.

TODO comprendre davantage. La version globale est en quelque sorte déterminée par :

~/.pyenv/version

qui contient maintenant :

3.8.0

Utilisation par projet

Dans la section précédente, nous avons vu comment utiliser pyenv dans une configuration globale.

Cependant, ce que vous souhaitez généralement, c'est définir une version spécifique de Python et du paquetage pour chaque projet. Voici comment procéder.

Commencez par installer la version de Python que vous souhaitez comme précédemment.

Ensuite, à partir du répertoire de votre projet, définissez la version de Python souhaitée avec :

pyenv local 3.8.0

qui crée un fichier .python-version contenant la chaîne de la version .

Et maintenant, installons un paquet localement juste pour notre projet : TODO : il semble qu'il n'y ait pas de bonne méthode : https://stackoverflow.com/questions/30407446/pyenv-choose-virtualenv-directory/59267972#59267972

Maintenant, quand quelqu'un voudra utiliser votre projet, il le fera :

pyenv local

qui définit la version de Python comme étant la bonne.

Fils connexes :

Testé sur Ubuntu 18.04, pyenv 1.2.15.

4voto

Charlie Parker Points 298

Pour autant que je sache, au moins dans un conteneur docker, on peut définitivement apt-get Python 3.

J'ai d'abord rencontré un conteneur ubuntu avec un 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

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

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

et pour tester si pip fonctionne, téléchargeons quelque chose :

pip3 install tensorflow

tout semble fonctionner correctement pour moi.

Note importante : il semble que si vous avez déjà installé Python 3.4 alors apt-get install python3 ne fonctionne pas car il dit que vous l'avez déjà. Il semble que ce soit l'un de mes problèmes car je démarrais à partir d'une image docker de tensorflow (en particulier gcr.io/tensorflow/tensorflow:latest-devel-py3 ) et quelque chose dans cette image (je suppose que c'est le fait qu'ils ont déjà Python 3.4 mais cela pourrait ê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 en posant 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

sur 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 de plus près, vous pouvez obtenir Python 3.5 si c'est ce que vous voulez.

Note : vous devriez probablement utiliser un environnement virtuel comme virtual env ou conda/anaconda de toute façon, à moins que vous n'utilisiez docker de toute façon. Je voulais juste le rappeler aux gens.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X