Comment changer python version par défaut de 2.7 à 3.7 sur RHEL 7.
Installé python sur la machine virtuelle RHEL7 en suivant ceci https://tecadmin.net/install-python-3-7-on-centos/
Lorsque je vérifie la version python, il affiche toujours l'ancienne version.
Comme d'autres l'ont dit plus haut dans les commentaires, RHEL 7 et ses dérivés dépendent de Python 2 à un niveau très profond. Vous ne pouvez tout simplement pas remplacer en toute sécurité Python 2 avec 3.
Même si ce n'était pas le cas, votre question est basée sur une prémisse incorrecte, étant que remplacer Python 2 par Python 3 est une bonne idée dans le premier Vous devez toujours appeler Python 3 as python3
, car cela vous isole de ce problème. Les scripts qui supposent Python 2 l'appellera comme python
dans lignes Shebang et ainsi, donc il n'y a en fait pas de conflit entre les deux si votre binaire Python sont construits correctement.
Ce "si" peut vous mordre: certains emballeurs ont créé Python 3 paquets avec un /usr/bin/python
ou similaire, ce qui crée un conflit. Ces packages ignorent les conseils standard, qui permettent d'installer les deux en parallèle.
Quant à obtenir réellement un Python 3 pour RHEL 7, c'est bien couvert dans une autre réponse sur Stack Overflow .
Sur RHEL7 avec l'installation officielle standard (en utilisant le référentiel SCL), le passage en environnement python3 pour le shell actuel se fait via la commande "scl enable" (note: dans mon cas, j'ai python 3.6):
scl enable rh-python36 "/bin/bash"
J'ai compris que si vous voulez configurer un utilisateur pour que son environnement soit configuré en dur pour Python3, faites-le (remarque: remplacez "[some_user]" par le nom d'utilisateur de cet utilisateur):
user=[some_user]; userhome=$(eval echo ~$user); echo ". /opt/rh/rh-python36/enable" >> ${userhome}/.bashrc
.bashrc est chargé à la fois pour les shells de connexion et non-logins, ce qui devrait donc être le cas pour les deux, les scripts exécutés à partir de la ligne de commande ainsi que les scripts exécutés par certains travaux cron, etc. le système par défaut comme emplacements principaux, c'est aussi simple que cela.
Je recommanderais la solution alternatives
Mes commandes seraient bien.
#!/bin/bash
alternatives --list | grep -i python
alternatives --install /usr/bin/python python /usr/bin/python2.7 1
alternatives --install /usr/bin/python python /usr/bin/python3.6 2
alternatives --install /usr/bin/python python /usr/local/bin/python3.7 3
alternatives --config python