I need to install Python 3 for Ansible IT automation tool on RHEL 8. How do I install Python 3 on RHEL 8? Is it possible to install Python 2 for legacy apps on RHEL 8?
Red Hat Enterprise Linux (RHEL 8) does not install Python 3 or 2 by default as Red Hat didn’t want to set a default. However, system administrators can install Python 3 or 2 as per needs using various methods. This page shows how to install Python 3 or Python 2.7 on RHEL 8 using yum command.
How to Install Python 3 / Python 2.7 on RHEL 8
The procedure for installing Python 3 on RHEL 8 is as follows:
- Open the Terminal application or window.
- Search for python package in RHEL 8, run: sudo yum search python3
- To install python 3 on RHEL 8, run: sudo yum install python3
- To install python 2 on RHEL 8, run: sudo yum install python2
- Upgrade python 3 in RHEL 8, run: sudo yum upgrade python3
- Upgrade python 2 in RHEL 8, run: sudo yum upgrade python2
Let us see all commands and example in details.
How to find out Python package names on RHEL 8
Try any one of the following syntax along with grep command:sudo yum search python3 | more
sudo yum search python2 | more
sudo yum search python36
sudo yum search python2 | grep 'python2.x86_64'
You can show detailed information before installing package as well:sudo yum info python2.x86_6
sudo yum info python36
RHEL 8 install Python 3
Type the following yum command to install Python 3 on Red Hat Enterprise Linux version 8:sudo yum install python3
ORsudo yum module install python36
Verify installation by typing the type command/command command:$ type -a python3
python3 is /usr/bin/python3
$ command -V python3
python3 is hashed (/usr/bin/python3)
$ python3 --version
Python 3.6.6
A sample script in Python 3
Create a file named test.py:
#!/usr/bin/python3 import os, time print("This is a test code for Python3") print("Hello %s, let us be friends!" % os.environ["USER"]) print("Today is %s" % time.strftime("%c")) |
Run it as follows:$ chmod +x test.py
$ ./test.py
A note for Ansible users
Set up your hosts file as follows on your control node to use Ansible as automation tool for RHEL 8 server:
[all:vars] ansible_user=vivek ansible_port=22 ansible_python_interpreter='/usr/bin/env python3' |
Now run it as usual:ansible-playbook -i hosts tasks/7-secure-rhel8-vm.yml
RHEL 8 install Python 2
Let us see how to install Python 2.7 on RHEL 8:sudo yum install python27
ORsudo yum module install python27
Let us find out information about installed version of Python 2.7 in RHEL 8:$ type -a python2
$ command -V python2
$ python2 --version
Can I install both Python 3.6 and Python 2.7 on RHEL 8?
Yes. It is possible to install both versions simultaneously:sudo yum module install python36 python27
Sample outputs:
Updating Subscription Management repositories. Updating Subscription Management repositories. Last metadata expiration check: 0:09:22 ago on Tuesday 05 March 2019 02:09:48 PM EST. Dependencies resolved. ======================================================================================== Package Arch Version Repository Size ======================================================================================== Installing group/module packages: python36 x86_64 3.6.6-17.el8+2102+a4bbd900 rhel-8-for-x86_64-appstream-beta-rpms 22 k python2 x86_64 2.7.15-15.el8+2103+c6cdb4cb rhel-8-for-x86_64-appstream-beta-rpms 106 k python2-pip noarch 9.0.3-10.el8+2056+8b2f0fde rhel-8-for-x86_64-appstream-beta-rpms 2.0 M python2-setuptools noarch 39.0.1-10.el8+1958+74bcdd68 rhel-8-for-x86_64-appstream-beta-rpms 643 k python2-libs x86_64 2.7.15-15.el8+2103+c6cdb4cb rhel-8-for-x86_64-appstream-beta-rpms 6.0 M Installing module profiles: python27/default python36/default Transaction Summary ======================================================================================== Install 5 Packages Total download size: 8.7 M Installed size: 36 M Is this ok [y/N]: |
How do I set default version of Python on RHEL 8?
One can set Python 3 as default by running the simple command:sudo alternatives --set python /usr/bin/python3
python --version
Sample outputs:
Python 3.6.6
Similarly one can set Python 2 as default version for RHEL 8 based desktop or server environment from the bash shell:sudo alternatives --set python /usr/bin/python2
python --version
How do I remove python default on RHEL 8?
The syntax is simple:sudo alternatives --remove python /usr/bin/python2
ORsudo alternatives --remove python /usr/bin/python3
Conclusion
This page showed how to install Python 3.6 or Python 2.7 on RHEL 8 using the yum command. For more information please see this page here and here.