Gestionnaires de packages - niveau utilisateur
Pour un gestionnaire de packages capable d'installer et de gérer plusieurs versions de python, voici de bons choix:
- pyenv - ne peut installer et gérer que les versions de python
- asdf - capable d'installer et de gérer de nombreuses langues différentes
L'avantage de ces gestionnaires de paquets est qu'il peut être plus facile de les configurer et d'installer plusieurs versions de python avec eux que d'installer python à partir des sources. Ils fournissent également des commandes pour modifier facilement la ou les versions de python disponibles à l'aide de shims et définir la version de python par répertoire.
Cet inconvénient est que, par défaut, ils sont installés au niveau de l'utilisateur (dans votre répertoire personnel) et nécessitent un peu de configuration au niveau de l'utilisateur - vous devrez modifier vos fichiers ~/.profileet / ~/.bashrcou similaires. Cela signifie qu'il n'est pas facile de les utiliser pour installer plusieurs versions de python globalement pour tous les utilisateurs. Pour ce faire, vous pouvez installer à partir de la source avec la version python existante du système d'exploitation.
Installation à partir de la source - à l'échelle du système
Vous aurez besoin des privilèges root pour cette méthode.
Consultez la documentation officielle de python pour la construction à partir des sources pour des considérations et des options supplémentaires.
/usr/localest l'emplacement désigné par un administrateur système pour installer un logiciel partagé (à l'échelle du système), donc ses sous-répertoires sont un bon endroit pour télécharger la source python et l'installer. Voir la section 4.9 du standard de hiérarchie des fichiers de la Linux Foundation .
Installez toutes les dépendances de construction. Sur les systèmes basés sur Debian, utilisez:
apt update
apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev
Choisissez la version de Python que vous souhaitez installer. Consultez la page Python Source Releases pour une liste.
Téléchargez et décompressez le fichier en /usr/local/srcremplaçant X.X.Xci-dessous par la version python (ie 3.8.2).
cd /usr/local/src
wget https://www.python.org/ftp/python/X.X.X/Python-X.X.X.tgz
tar vzxf Python-X.X.X.tgz
Avant de construire et d'installer, définissez la CFLAGSvariable d'environnement avec les indicateurs de compilateur C nécessaires (voir la makedocumentation de GNU ). Ce n'est généralement pas nécessaire pour une utilisation générale, mais si, par exemple, vous vouliez créer un plugin uWSGI avec cette version python, vous voudrez peut-être définir les indicateurs,, -fPICavec les éléments suivants:
export CFLAGS='-fPIC'
Remplacez le répertoire de travail par le répertoire source python décompressé et configurez la construction. Vous voudrez probablement utiliser l' --enable-optimizationsoption de la ./configurecommande pour l' optimisation guidée par profil . Utilisez --prefix=/usr/localpour installer les sous - répertoires appropriés ( /usr/local/bin, /usr/local/lib, etc.).
cd Python-X.X.X
./configure --enable-optimizations --prefix=/usr/local
Générez le projet avec makeet installez avec make altinstallpour éviter de remplacer des fichiers lors de l'installation de plusieurs versions. Voir l'avertissement sur cette page de la documentation de compilation python.
make -j 4
make altinstall
Ensuite, vous devriez être en mesure d'exécuter vos nouvelles versions de python et pip avec pythonX.Xet pipX.X(c'est python3.8-à- dire et pip3.8). Notez que si la version mineure de votre nouvelle installation est la même que la version du système d'exploitation (par exemple, si vous installez python3.8.4 et que le système d'exploitation utilise python3.8.2), vous devrez alors spécifier le chemin complet ( /usr/local/bin/pythonX.X) ou définir un alias pour utiliser cette version.