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

  1. installer le nouveau python en parallèle
  2. l’installer en plus (sans remplacer ni interrompre aucune des installations ou alias existants)
  3. 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 :

  1. Intégrez le référentiel devel:languages:python:backports dans votre système.
  2. Installez le paquet pyenv :
     $ sudo zypper install --details pyenv
    
  3. 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
    
  4. 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

  5. Redémarrez votre shell avec exec $SHELLou fermez votre console et ouvrez-en une nouvelle.

Installer une version différente de Python😊

Votre système est maintenant prêt. La pyenvcommande 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 :

  1. Installez une version Python, par exemple 3.11 :
     $ pyenv install 3.10
    
  2. 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
    
  3. Vérifiez si cela pip3ré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, pyenvvous 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 pyenvpackage 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.10vs. pip3-3.10).

Avez-vous trouvé cet(te) Article utile ? OUI NON 0 sur 0 personnes trouvent que ce(tte) Article est utile.
Cylar télécom crm

LEAVE A REPLY

Please enter your comment!
Please enter your name here