Gestionnaires de paquets - niveau utilisateur
Pour un gestionnaire de paquets capable d'installer et de gérer plusieurs versions de python, ce sont de bons choix :
-
pyenv - seulement capable d'installer et de gérer 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 permettant de changer facilement la ou les versions de python disponibles à l'aide de shims et de 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 (à l'intérieur de votre répertoire personnel) et nécessitent un peu de configuration au niveau de l'utilisateur - vous devrez modifier votre ~/.profile
y ~/.bashrc
ou des fichiers similaires. Cela signifie qu'il n'est pas facile de les utiliser pour installer plusieurs versions de python de manière globale pour tous les utilisateurs. Pour ce faire, vous pouvez procéder à une installation à partir des sources, parallèlement à 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 de Root pour cette méthode.
Voir le documentation officielle de python pour la construction à partir des sources pour des considérations et des options supplémentaires.
/usr/local
est l'emplacement désigné par l'administrateur système pour installer des logiciels partagés (à l'échelle du système). Ses sous-répertoires sont donc un bon endroit pour télécharger les sources de python et les installer. Voir section 4.9 de la norme sur la hiérarchie des fichiers de la Fondation Linux. .
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. Voir le Communiqués de presse sur les sources Python pour obtenir une liste.
Téléchargez et décompressez le fichier dans /usr/local/src
en remplaçant X.X.X
ci-dessous avec la version de python (i.e. 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, réglez le CFLAGS
avec les drapeaux du compilateur C nécessaires (voir le document GNU's make
documentation ). Cela n'est généralement pas nécessaire pour une utilisation générale, mais si, par exemple, vous aviez l'intention de créer un plugin uWSGI avec cette version de python, vous pourriez vouloir définir les drapeaux, -fPIC
avec les éléments suivants :
export CFLAGS='-fPIC'
Changez le répertoire de travail pour le répertoire source dézippé de python, et configurez la construction. Vous voudrez probablement utiliser l'option --enable-optimizations
sur l'option ./configure
pour optimisation guidée par le profil . Utilisez --prefix=/usr/local
pour installer dans les sous-répertoires appropriés ( /usr/local/bin
, /usr/local/lib
etc.).
cd Python-X.X.X
./configure --enable-optimizations --prefix=/usr/local
Construire le projet avec make
et l'installer avec make altinstall
pour éviter de remplacer des fichiers lors de l'installation de plusieurs versions. Voir l'avertissement sur cette page de la documentation sur la construction de python.
make -j 4
make altinstall
Ensuite, vous devriez pouvoir exécuter vos nouvelles versions de python et pip avec pythonX.X
y pipX.X
(c'est-à-dire python3.8
y pip3.8
). Notez que si la version mineure de votre nouvelle installation est la même que celle 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 spécifier le chemin d'accès complet ( /usr/local/bin/pythonX.X
) ou définissez un alias pour utiliser cette version.