Situation
Serveur interne
- OpenSUSE Leap 15.5
- Python 3.6(.15)
- Python 2.7(.18)
Tâche
Comme Python 3.6 est déjà en fin de vie, nous allons installer une version plus récente de Python (3.10).
Afin de ne rien casser
- installer le nouveau python en parallèle
- l’installer en plus (sans remplacer ni interrompre aucune des installations ou alias existants)
- l’avoir disponible de n’importe où (scripts)
Serveur essentiel aux processus de développement.
Cette solution est réservée à openSUSE. Bien que vous puissiez également l’utiliser pour SUSE Linux Enterprise Server, elle n’est actuellement pas prise en charge. Ceci a été tester sur openSUSE Leap 15.5
Vous pouvez essayer pyenv , qui permet d’utiliser différentes versions de Python pour un utilisateur spécifique. Je l’utilise depuis plusieurs mois maintenant et j’en suis assez satisfait.
Je ne suis pas sûr que cela soit autorisé par vos politiques. Cependant, cette solution aurait un impact ou une perturbation minime sur votre système. Vous n’avez pas à déformer votre système.
Gardez à l’esprit que cela ne fonctionnera que pour un utilisateur spécifique . Les autres utilisateurs ne verront pas ce changement et ne seront pas affectés. Cela peut être un avantage ou non.
Préparation du système
Avant de pouvoir utiliser une version spécifique de Python, vous devez installer et configurer pyenv
.
Procédez comme suit :
- Intégrez le référentiel devel:languages:python:backports dans votre système.
- Installez le paquet pyenv :
$ sudo zypper install --details pyenv
- Installez les packages de développement suivants qui sont nécessaires pour créer Python :
$ sudo zypper install -y gcc automake bzip2 libbz2-devel \ xz xz-devel openssl-devel ncurses-devel readline-devel \ zlib-devel tk-devel libffi-devel sqlite3-devel \ gdbm-devel make findutils patch
- Ajoutez les lignes suivantes à votre fichier ~/.bashrc :
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc
Si vous utilisez un autre shell, reportez-vous à https://github.com/pyenv/pyenv#set-up-your-shell-environment-for-pyenv
- Redémarrez votre shell avec
exec $SHELL
ou fermez votre console et ouvrez-en une nouvelle.
Installer une version différente de Python😊
Votre système est maintenant prêt. La pyenv
commande télécharge la version demandée, la compile et la stocke sous ~/.pyenv/versions/
. Une fois cette opération effectuée, vous pouvez utiliser votre nouvelle version Python dans le shell.
Pour installer une version spécifique de Python, procédez comme suit :
- Installez une version Python, par exemple 3.11 :
$ pyenv install 3.10
- Définissez cette version pour votre utilisateur spécifique :
$ pyenv global 3.10
Si vous souhaitez le restreindre à vos répertoires actuels, utilisez :
$ pyenv local 3.10
- Vérifiez si cela
pip3
résout l’installation locale :$ pip3.10 --version pip 23.1.2 from /home/tux/.pyenv/versions/3.11.4/lib/python3.10/site-packages/pip (python 3.10)
Vous devriez voir un répertoire qui pointe vers l’utilisateur, ne commençant pas par
/usr/
.
Après avoir préparé vos systèmes, pyenv
vous pouvez installer n’importe quelle bibliothèque Python dans votre installation locale. Par exemple :
$ pip3.10 install <LIBRARY>
Remarques de clôture
Gardez à l’esprit que cette méthode contourne le système RPM et zypper. Vous n’obtenez aucune mise à jour de leur part. Cependant, si vous avez besoin d’une version plus récente de Python, vous devez mettre à jour le pyenv
package pour accéder aux dernières versions.
De plus, vous devez faire attention à la version Python provenant d’un RPM. Vous pourriez être confus car il existe des noms similaires ( pip3.10
vs. pip3-3.10
).