Blog

03/06/2019

RHEL 8 install Python 3 or Python 2 using yum



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:

  1. Open the Terminal application or window.
  2. Search for python package in RHEL 8, run: sudo yum search python3
  3. To install python 3 on RHEL 8, run: sudo yum install python3
  4. To install python 2 on RHEL 8, run: sudo yum install python2
  5. Upgrade python 3 in RHEL 8, run: sudo yum upgrade python3
  6. 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
OR
sudo 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"))

#!/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'

[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
OR
sudo 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]:

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
OR
sudo 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.

(adsbygoogle = window.adsbygoogle || []).push({});

Posted by: SXI ADMIN

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

14/08/2019

How to KVM, QEMU start or stop virtual machine from command line (CLI)

KVM or Kernel Based Virtual Machine is a popular virtualization technology. It allows you to run virtual guest machines over a host machine. To start...
14/08/2019

How to Docker backup Saving and restoring your volumes

Running a Docker volume backup First, we spin up a temporary container, and we mount the backup folder and the target Docker volume to this container....
12/08/2019

How to Start and Enable Firewalld on CentOS 7

In this article, we discuss how to start and enable firewalld. It is highly recommended that you have a firewall protecting your server.Pre-Flight CheckThese...