When a package's exact name is not known (python3, python38, something scl) file name searches can do a more complete search: yum provides '*bin/python3*'

Correct, there is no python3.8 in EPEL 7. There is a python3.6 in EL 7, and EPEL policy is not to replace EL packages. Plus the distro's policy to avoid major upgrades, would seem like it is stuck on older Python.

Your yum repo list hints that CentOS software collections are enabled, which could be an alternative.

yum install centos-release-scl-rh
yum install rh-python38-python

Note both the package name and the files are prefixed, which allows coexistence with other pythons. While perhaps SCL is not the most popular packaging convention, it is already built and public, an advantage over your own source builds.

Currently CentOS 7 is 87 weeks from end of life, which is not a lot by EL time scales. Most of the maintainer attention is on EL 8 and 9, 7 is critical fixes only.

Budget some of that time to figure out what you are are going to do post CentOS 7. Which may be non-trivial, as CentOS 8 is dead, and if Stream is not what you need, may be switching distros.

Answer from John Mahowald on serverfault.com
Top answer
1 of 16
257

Installing from RPM is generally better, because:

  • you can install and uninstall (properly) python3.
  • the installation time is way faster. If you work in a cloud environment with multiple VMs, compiling python3 on each VMs is not acceptable.

Solution 1: Red Hat & EPEL repositories

Red Hat has added through the EPEL repository:

  • Python 3.4 for CentOS 6
  • Python 3.6 for CentOS 7

[EPEL] How to install Python 3.4 on CentOS 6

sudo yum install -y epel-release
sudo yum install -y python34

# Install pip3
sudo yum install -y python34-setuptools  # install easy_install-3.4
sudo easy_install-3.4 pip

You can create your virtualenv using pyvenv:

pyvenv /tmp/foo

[EPEL] How to install Python 3.6 on CentOS 7

With CentOS7, pip3.6 is provided as a package :)

sudo yum install -y epel-release
sudo yum install -y python36 python36-pip

You can create your virtualenv using pyvenv:

python3.6 -m venv /tmp/foo

If you use the pyvenv script, you'll get a WARNING:

$ pyvenv-3.6 /tmp/foo
WARNING: the pyenv script is deprecated in favour of `python3.6 -m venv`

Solution 2: IUS Community repositories

The IUS Community provides some up-to-date packages for RHEL & CentOS. The guys behind are from Rackspace, so I think that they are quite trustworthy...

https://ius.io/

Check the right repo for you here:

https://ius.io/setup

[IUS] How to install Python 3.6 on CentOS 6

sudo yum install -y https://repo.ius.io/ius-release-el6.rpm
sudo yum install -y python36u python36u-pip

You can create your virtualenv using pyvenv:

python3.6 -m venv /tmp/foo

[IUS] How to install Python 3.6 on CentOS 7

sudo yum install -y https://repo.ius.io/ius-release-el7.rpm
sudo yum install -y python36u python36u-pip

You can create your virtualenv using pyvenv:

python3.6 -m venv /tmp/foo
2 of 16
207

It is easy to install python manually (i.e. build from source):

  1. Download (there may be newer releases on Python.org):

     $ wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz
    
  2. Unzip

     $ tar xf Python-3.* 
     $ cd Python-3.*
    
  3. Prepare compilation

     $ ./configure
    
  4. Build

     $ make
    
  5. Install

     $ make install
    

    OR if you don't want to overwrite the python executable (safer, at least on some distros yum needs python to be 2.x, such as for RHEL6) - you can install python3.* as a concurrent instance to the system default with an altinstall:

     $ make altinstall
    

Now if you want an alternative installation directory, you can pass --prefix to the configurecommand.

Example: for 'installing' Python in /opt/local, just add --prefix=/opt/local.

After the make install step: In order to use your new Python installation, it could be, that you still have to add the [prefix]/bin to the $PATH and [prefix]/lib to the $LD_LIBRARY_PATH (depending of the --prefix you passed)

Discussions

python - Python38 packages on Fedora 31 yum - Unix & Linux Stack Exchange
On CentOS 8, I can get a range of packages for python 3.8 via yum (see below), most importantly python38-devel. However, on Fedora 31 none of these packages are available. More on unix.stackexchange.com
🌐 unix.stackexchange.com
November 22, 2021
No package python3 available.
Hello, When trying to install the dependencies using the script: sudo -i "/apps/source/dataiku-dss-10.0.2/scripts/install/install-deps.sh" -without-java More on community.dataiku.com
🌐 community.dataiku.com
May 12, 2022
Python 3.8 not possible to install on Linux? Why?
It's nearly 2020 already, can we please move forward please. RHEL/Centos has a 6 years release cycle with 10 years maintenance support. Every package needs to work with every other package across the entire system... for the entire time. You cannot update any package without verifying first that you are not breaking anything in the process, and that takes resources, like time from people that knows what they are doing. And python 3.6 end-of-life is on 2021-12-23, we still have two years of full support. Besides... Why do you want to have python 3.8 system-wide? If you install a different version of a library as fundamental as python at a system level you are risking breaking packages or libraries on the whole system. I wonder what new feature is so necessary from python 3.8 that python 3.6 doesn't have that is so pressing for you to have it on your system immediately. I'm not sure what the deal is with Python enthusiasts or RHEL/CentOS users that someone somewhere has not simply updated some repo somewhere, I can try and get involved. Please do it, get involved. Learn. Fix. Document. Share. But a word of warning: tune it down a bit before going full-on whining again anywhere on both communities. More on reddit.com
🌐 r/Python
8
0
October 15, 2019
Could not load python38.dll.
Environment Pythonnet version: 3.0.0-rc4 Python version: 3.8.10 Operating System: Windows 11 .NET Runtime: .NET 6 / 7 Details Describe what you were trying to get done. When there is no Python alre... More on github.com
🌐 github.com
0
August 25, 2022
Top answer
1 of 2
10

As per the instructions on How to Install Python 3.8 on Ubuntu, Debian and LinuxMint – TecAdmin, try the following:

Prerequisites:

Install [and or update] the following packages; build-essential, checkinstall, libreadline-gplv2-dev, libncursesw5-dev, libssl-dev, libsqlite3-dev, tk-dev, libgdbm-dev, libc6-dev, libbz2-dev, libffi-dev, zlib1g-dev.

sudo apt install build-essential checkinstall
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev

Thereafter, change directory (cd) to your opt folder [or any convenient folder] and download the python source code from python's server:

First change directory (cd) to the 'opt' folder:

cd /opt/

Download the source code

sudo wget https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz

Extract the [downloaded] source code files

sudo tar xzf Python-3.8.3.tgz

Change directory (cd) the Python Folder [created after the extraction]

cd Python-3.8.3

Compile the source code

sudo ./configure --enable-optimizations

then

sudo make altinstall

Once the compilation is completed, you can confirm that Python 3.8 has been installed successfully with:

python3.8 -V

You should see the response Python-3.8.3.

However, to precisely answer your question, python 3.8 isn't available via ubuntu official repos. You would have to add a PPA to get python 3.8 using sudo apt install [python3.x.x].

The process is described on How to Install Python 3.8 on Ubuntu 18.04 | Linuxize

Hope this helps and I hope I answered your question adequately.

2 of 2
0

It looks like Python 3.8 is already installed but not set as default. Python 3.7.6 is set as default.

Update default Python3 version by below command.

sudo update-alternatives --config python3

Choose Python 3.8 option and check Python version again.

🌐
Stack Exchange
unix.stackexchange.com › questions › 621689 › python38-packages-on-fedora-31-yum
python - Python38 packages on Fedora 31 yum - Unix & Linux Stack Exchange
November 22, 2021 - On CentOS 8, I can get a range of packages for python 3.8 via yum (see below), most importantly python38-devel. However, on Fedora 31 none of these packages are available.
🌐
Dataiku Community
community.dataiku.com › discussions › setup & configuration
No package python3 available. — Dataiku Community
May 12, 2022 - I am trying to yum install python3 but it is giving error that : No package python3 available.
🌐
Red Hat
access.redhat.com › solutions › 7002378
Cannot find rh-python38-python-virtualenv package - Red Hat Customer Portal
virtualenv package is available for rh-python-36, but not for rh-python-38 · How to create virtual environments in rh-python-38 · Red Hat Enterprise Linux 7 · Red Hat Software Collections · rh-python38 · A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.
🌐
CentOS Repositories
centos.pkgs.org › 7 › centos-sclo-rh-x86_64 › rh-python38-python-3.8.6-1.el7.x86_64.rpm.html
rh-python38-python-3.8.6-1.el7.x86_64.rpm CentOS 7 Download
The majority of its standard library is provided in the rh-python38-python-libs package, which should be installed automatically along with rh-python38-python. The remaining parts of the Python standard library are broken out into the rh-python38-python-tkinter and rh-python38-python-test packages, which may need to be installed separately.
🌐
Position Is Everything
positioniseverything.net › home › how to install python 3.8 on linux: a step-by-step guide
How to Install Python 3.8 on Linux: A Step-by-Step Guide - Position Is Everything
May 16, 2026 - If the command returns something like Python 3.8.20, Python 3.8 is already available. If you see “command not found,” continue with one of the installation methods below. Screenshot description: A terminal window showing python3 --version returning Python 3.12.3, followed by python3.8 --version returning command not found. ... Ubuntu: Use the Deadsnakes PPA if supported for your Ubuntu version. Debian: Use pyenv or build from source, especially on newer Debian releases. Fedora: Use dnf if Python 3.8 packages are available, otherwise use pyenv or source.
Find elsewhere
🌐
Reddit
reddit.com › r/python › python 3.8 not possible to install on linux? why?
r/Python on Reddit: Python 3.8 not possible to install on Linux? Why?
October 15, 2019 -

Monday, October 14, 2019 Python 3.8.0 is now available

I am attempting to install the latest Python 3.8.0 on CentOS 8, but it does not seem possible.

I search in Software Collections, and find nothing. The latest release there is Python 3.6 (released nearly three years ago - no updates in three years!!! - I'm abandoning Software Collections).

Python 3.6 was released on December 23rd, 2016, nearly three years ago.

I check in the RHEL / CentOS repos, and same darn thing, no python update in nearly three years.

#dnf list --available | grep python3

Nothing there for Python 3.8.0 or even Python 3.7.x for that matter. I'm not sure what the deal is with Python enthusiasts or RHEL/CentOS users that someone somewhere has not simply updated some repo somewhere, I can try and get involved.

Use the source:

https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz

I download the Python 3.8.0 source from the link above, look at the dependencies and try to get those installed first, but no luck. The dependencies for 3.8.0 cannot be found or installed.

Dependencies attempted install via:

#!/bin/bash
#dnf install dnf-plugins-core  # install this to use 'dnf builddep'
#dnf builddep python3
#dnf update -y

Results:

No matching package to install: 'libnsl2-devel'
No matching package to install: 'bluez-libs-devel'
No matching package to install: 'tix-devel'
Not all dependencies satisfied
Error: Some packages could not be found.

When I search for these, I find nothing in the repos:

#dnf list --available | grep libnsl2-devel
#dnf list --available | grep bluez-libs-devel
#dnf list --available | grep tix-devel

Nothing is returned for any of these dependencies.

What has to be done to get these dependencies in a repo somewhere so they can be installed so I can build the source code?

Better yet, how do I get Python 3.8.0 in some freaking repo some where, it's been three years since any RHEL or CentOS repo has been updated.

It's nearly 2020 already, can we please move forward please.

🌐
CodeRivers
coderivers.org › blog › installing-python-38
Installing Python 3.8: A Comprehensive Guide - CodeRivers
February 22, 2026 - Open the terminal and run the following commands to update the package list and install Python 3.8: sudo apt update sudo apt install python3.8 · For Fedora-based Systems: Run the following commands in the terminal: sudo dnf install python38 · Verify the Installation: Open the terminal and ...
🌐
GitHub
github.com › pythonnet › pythonnet › issues › 1922
Could not load python38.dll. · Issue #1922 · pythonnet/pythonnet
August 25, 2022 - When there is no Python already installed on the system. Trying to load python-3.8.10-embed-amd64 · What commands did you run to trigger this issue? If you can provide a Minimal, Complete, and Verifiable example this will help us understand the issue. PythonEngine.PythonHome = path_to_embed_python38 https://github.com/Aloento/CraftVits/blob/0e791776deccc6e6428c0ba339ef97aa168db2b6/VitsCLI/PyLoc.cs#L10
Author   pythonnet
🌐
Gerald on IT
geraldonit.com › 2019 › 01 › 08 › how-to-install-python-3-on-oracle-linux
How to install Python 3 on Oracle Linux – Gerald on IT
January 8, 2019 - It actually does not work ‘No package python38 available’ now i tried with 3.6.8 but when i do pip3 it gives Traceback (most recent call last): File “/bin/pip3”, line 8, in from pip import main File “/usr/lib/python3.6/site-packages/pip/init.py”, line 42, in from pip.utils import ...
🌐
Red Hat
bugzilla.redhat.com › show_bug.cgi
Full Text Bug Listing
October 12, 2020 - Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla · RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue ...
🌐
WinDLL
windll.com › dll › python-software-foundation › python38
Python38.dll Download and Fix missing python38.dll error - WinDLL.com
First of all, you need to download Python38.dll to PC from our site. Copy the file to the program install directory after where it is missing the DLL file. Or move the DLL file to the directory of your System (C:\Windows\System32, and for a 64 bit in C:\Windows\SysWOW64\). Now you need to reboot ...
🌐
PyPI
pypi.org › project › incompatible-with-python38
incompatible-with-python38 · PyPI
April 24, 2020 - Download the file for your platform. If you're not sure which to choose, learn more about installing packages. incompatible-with-python38-1.0.0.tar.gz (802 Bytes view hashes)
      » pip install incompatible-with-python38
    
Version   1.0.0
🌐
GitHub
github.com › tensorflow › text › issues › 284
No Python 3.8 distribution · Issue #284 · tensorflow/text
May 10, 2020 - To avoid this problem you can invoke Python with '-m pip' instead of running pip directly. WARNING: Package(s) not found: tensorflow WARNING: pip is being invoked by an old script wrapper.
Author   tensorflow
🌐
Red Hat
developers.redhat.com › blog › 2018 › 08 › 13 › install-python3-rhel
How to install multiple versions of Python on Red Hat Enterprise Linux | Red Hat Developer
February 27, 2024 - In Red Hat Enterprise Linux 8, Python 3 is distributed in versions 3.6 (default), 3.8, and 3.9, provided by the python36, python38, and python39 modules, which can be installed in parallel as well. For example, the following command installs Python 3.6 on a RHEL 8 machine: ... Now, this module stream is enabled automatically, and you can verify this using: python3 --version. Let's go ahead and install Python 3.9 on RHEL 8: ... Verify this specific installation using: python3.11 --version. In addition, for installing the pip package installer, add on the -pip extension to the version of python being installed, for example:
Top answer
1 of 6
48

You have to enable the EPEL repo, use:

yum --enablerepo=extras install epel-release

This command will install the correct EPEL repository for the CentOS version you are running.

After this you will be able to install python-pip.

2 of 6
11

I was going crazy about the same issue. The reason why yum couldn't find python-pip was that it is not called python-pip anymore. Starting with EPEL Version 7 it is renamed to identify the python version. On my centOS machine i can find now the following python*-pip packages.

[root@asdasdasdasdsa ~]# yum info python*-pip
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.rz.uni-frankfurt.de
 * epel: mirrors.mit.edu
 * extras: mirror.23media.de
 * updates: ftp.plusline.de
Available Packages
Name        : python2-pip
Arch        : noarch
Version     : 8.1.2
Release     : 5.el7
Size        : 1.7 M
Repo        : epel/x86_64
Summary     : A tool for installing and managing Python 2 packages
URL         : http://www.pip-installer.org
License     : MIT
Description : Pip is a replacement for `easy_install
            : <http://peak.telecommunity.com/DevCenter/EasyInstall>`_.  It uses mostly the
            : same techniques for finding packages, so packages that were made
            : easy_installable should be pip-installable as well.

Name        : python34-pip
Arch        : noarch
Version     : 8.1.2
Release     : 5.el7
Size        : 1.7 M
Repo        : epel/x86_64
Summary     : A tool for installing and managing Python3 packages
URL         : http://www.pip-installer.org
License     : MIT
Description : Pip is a replacement for `easy_install
            : <http://peak.telecommunity.com/DevCenter/EasyInstall>`_.  It uses mostly the
            : same techniques for finding packages, so packages that were made
            : easy_installable should be pip-installable as well.