Installer des versions plus récentes et plus anciennes de python sur Debian?

12

Comment puis-je installer des versions supplémentaires de python sur Debian (jessie). Sur Ubuntu, je peux utiliser le PPA "deadsnakes" qui me donnera n'importe quelle version de python que je veux, avec le nom de la version dans la commande (par exemple python33pour python 3.3). Cela me permet de les installer tous côte à côte. Je peux utiliser virtualenvs pour installer des packages python spécifiques pour des versions spécifiques sans jouer avec les packages système. Je gère certaines bibliothèques python, et elles doivent fonctionner sur de nombreuses versions de python. Si j'ai le binaire python installé, alors tox se chargera d'utiliser virtualenvs pour chaque version de python.

Alors, quel est l'équivalent Debian du PPA de serpents morts d'Ubuntu?

MISE À JOUR Je veux installer python: 2.6, 2.7, 3.3, 3.4 et 3.5.

Rory
la source
Pouvez-vous spécifier les versions de Python que vous souhaitez installer? Je pense que Jessie a quelques versions différentes disponibles.
Faheem Mitha
À mon avis, vous feriez probablement mieux d'installer simplement différentes versions de Python à partir des sources.
Celada

Réponses:

9

Utilisation du PPA

Vous pouvez utiliser le PPA sur Debian. Choisissez une version d'Ubuntu légèrement antérieure à votre version Debian, et elle devrait avoir toutes les bibliothèques nécessaires. Pour Wheezy, le PPA onirique semble correct (mais il manque des versions plus récentes de Python). Pour Jessie, le fidèle PPA devrait fonctionner.

Pour ajouter un PPA sur Debian, créez un fichier /etc/apt/sources.list.d/deadsnakes.listcontenant

deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu trusty main 
deb-src http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu trusty main 

Téléchargez la clé de signature PPA avec

gpg --keyserver keyserver.ubuntu.com --recv-keys DB82666C

puis ajoutez la clé à la base de données de clés APT avec

gpg --export DB82666C | sudo apt-key add -

Enfin, exécutez apt-get updateet installez les packages souhaités.

Si vous ne pouvez pas faire fonctionner le PPA pour certaines raisons (peut-être que vous ne pouvez pas trouver une version qui fonctionne avec les bibliothèques que vous avez), vous pouvez télécharger la source et les recompiler pour votre distribution.

Utiliser un système chrooté

Ce que je fais habituellement pour tester la compatibilité avec d'autres versions, c'est d'exécuter des distributions plus anciennes ou plus récentes dans un système chrooté . Par exemple, vous pouvez installer différentes versions d'Ubuntu avec les versions de Python qui vous intéressent, ou vous pouvez installer trusty dans un chroot et y installer le PPA. Pour plus d'informations, consultez mon guide schroot .

Gilles 'SO- arrête d'être méchant'
la source
1
Vous devez éviter d'utiliser les PPA Ubuntu sur Debian, car cela pourrait provoquer des problèmes ou d'autres conflits. (Il est également possible d'utiliser des pyenvenvironnements virtuels pour plusieurs versions de Python)
Thomas Ward
Je peux confirmer que j'ai correctement installé python 2.6, 2.7, 3.1, 3.2, 3.3, 3.5 et 3.6 sur les tests Debian actuels en utilisant cette approche. La seule mise en garde que j'ai rencontrée était que j'avais besoin de déterrer une ancienne version libssl1.0.0que j'ai trouvée ici: packages.debian.org/jessie/libssl1.0.0 . J'ai également utilisé les versions xenial (16.04) des packages (lts actuels), bien que je pense que trusty fonctionne toujours.
Att Righ
1

Je dirais qu'il n'y a pas d'équivalent Debian au PPA des serpents morts d'Ubuntu

Sous Debian, l'utilisation de packages ou de référentiels Ubuntu n'est pas recommandée. Comme ce billet apparaît dans les moteurs de recherche, je propose ici une réponse moins dangereuse pour un système Debian.

L'installation manuelle de Python est possible. Par exemple, vous pouvez utiliser les instructions suivantes pour installer la version 3.5.2

Conditions préalables

Installer les dépendances:

sudo apt-get update && sudo apt-get install libssl-dev openssl

Construire Python

Vous pouvez créer Python dans un dossier spécifique en utilisant le --prefixparamètre from configurecommand:

wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
tar zxf Python-3.5.2.tgz
cd Python-3.5.2/
./configure --prefix=/usr/local
make
sudo make install

Au lieu de cela /usr/local, on peut utiliser un autre répertoire de base. Par exemple:

sudo mkdir /opt/python-3.5.2
./configure --prefix=/opt/python-3.5.2

Sélection de la version de python

L'utilisation de la variable d'environnement PATH peut aider à choisir la bonne version de python à utiliser. Mais on peut aussi utiliser des liens symboliques:

sudo ln -s /opt/python-3.5.2/bin/python3.5 /usr/local/bin/python3
sudo ln -s /opt/python-3.5.2/bin/pip3.5 /usr/local/bin/pip3

L'utilisation de l' -foption vous permettra de remplacer les liens symboliques existants

lauhub
la source