Several top universities around the globe use Python to introduce students to programming. The Massachusetts Institute of Technology (MIT), the University of Texas at Arlington, and Stanford are only a few examples of institutions that use this language extensively.
Additionally, it is important to note that Python is also useful for a wide variety of educational, enterprise, and scientific purposes – from web development to desktop applications to machine learning and everything in between.
Currently, there are two major Python versions in use – 2 and 3, with 2 rapidly losing ground to 3 since the former is no longer under active development. Since all Linux distributions come with Python 2.x installed.
In this article, we will show how to install and use the latest Python version in RHEL-based distributions and Debian and its derivatives such as Ubuntu (the latest LTS version already has the latest Python installed) or Linux Mint. Our focus will be installing the core language tools that can be used in the command line.
However, we will also explain how to install Python IDLE – a GUI-based tool that allows us to run Python code and create standalone functions.
Install Python on Linux from Source
At the time of this writing (November 2022), the latest version is Python 3.11, and we are going to perform the installation from the source.
Although we can install the core packages and their dependencies using yum and aptitude (or apt-get) or apt.
Why? The reason is simple: this allows us to have the latest stable release of the language (3.11) and to provide a distribution-agnostic installation method.
Prior to installing Python in RHEL-based distributions such as CentOS Stream Fedora, Rocky, and AlmaLinux, let’s make sure our system has all the necessary development dependencies:
# yum -y groupinstall development # yum -y install zlib-devel
In >Debian-based distributions such as Ubuntu and Linux Mint, we will need to install gcc, make, and the zlib compression/decompression library:
# aptitude -y install gcc make zlib1g-dev
Once needed core packages are installed, you can head over to the official Python download page to download the Python 3.11 source release or use the following wget command to download it directly and install it.
# wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tar.xz # tar xJf Python-3.11.0.tar.xz # cd Python-3.11.0 # ./configure # make # make install
Now relax and go grab a sandwich because this may take a while. When the installation is complete, use which to verify the location of the main binary:
# which python3 # python3 -V # python3
The output of the above command should be similar to:
[root@tecmint:~/Python-3.11.0]# which python3 /usr/local/bin/python3 [root@tecmint:~/Python-3.11.0]# python3 -V Python 3.11.0 [root@tecmint:~/Python-3.11.0]# python3 Python 3.11.0 (main, Nov 15 2022, 09:50:56) [GCC 8.5.0 20210514 (Red Hat 8.5.0-10)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> quit Use quit() or Ctrl-D (i.e. EOF) to exit >>> quit()
Congratulations! Python 3.11 is now installed on your system.
Install Python IDLE on Linux
Python IDLE is a GUI-based tool for Python. If you wish to install the Python IDLE, grab the package named idle (Debian) or python-tools (RHEL).
# yum install python3-idle [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] # apt-get install idle [On Debian, Ubuntu and Mint]
Type the following command to start the Python IDLE.
# idle3 Or # idle
Summary
In this article, we have explained how to install the latest Python stable version from the source.
Last, but not least, if you’re coming from Python 2, you may want to take a look at the 2to3 official documentation. This is a program that reads Python 2 code and transforms it into valid Python 3 code.
Do you have any questions or comments about this article? Feel free to get in touch with us using the form below.
Conda is a climate supervisor and a bundle director that is packaged into a solitary bundle. Conditions are an ideal approach to having various forms of similar programming on a similar PC. They are fundamental when various applications rely upon various renditions of a typical reliance.
A climate administrator, like Conda, establishes various ways for every climate. A climate introduces bundles into and runs bundles in just its own way, which is not quite the same as the ways of different conditions. Subsequently, conditions are autonomous of one another.
for more info pls visit our website: https://conda.io/projects/conda/en/latest/user-guide/install/linux.html
Installing from source as *root* is usually a bad idea. There is no uninstall step. You are likely to overwrite packages maintained by your system package manager (yum, apt, etc.) On Red Hat you can break yum which is difficult to recover from.
Install packages if they are available. There are several choices of Python 3 packages for most distributions.
Only build from source if you have to for some reason and then install someplace other than /usr.
You can rest assured that when you say “You can rest assured” in the future it will not work as you expect it to due mostly to bad assumptions such as in this case (not that it matters but using a headless latest generic installed openmediavault) we need to change the basic commands for the shell version apt/apt-get as assuming there’s a GUI application installed aptitude/yum etc will stop the beginner in their tracks as per all current so called developers not being end user/home user friendly etc…
so anyway,
In Debian we will need to install gcc, make, and the zlib compression / decompression library:
To install Python 3.6, run the following commands:
Now relax and go grab a sandwich because this may take a while. When the installation is complete, use which to verify the location of the main binary:
before
after
before
after
Such a great tutorial, thanks
On OpenSUSE, you might need to install readline package as well.
We finished our work but still, the installation is in progress. What shall I do ??
Mr. Cánepa, thanks for the method which you wrote and that worked perfectly for me.
Now I have a related and urgent question for you, please.
After I played with the Python 3.6 interpreter on command line, I think that my Linux Mint 17 does NOT support it very well for convenient use in the terminal.
So I want to reverse to the system default Python 3.4 . Do you have some idea about how I should do it safely? I’ve googled about that and found no answer.
Thank you very much.
@Alex,
The only option to remove Python 3.6, is to find each file and remove with find command..:)
Hi,
After downloading python, when I use this command (./configure), it shows below error.
configure: error: in /root/Python-3.6.3 :
configure: error: no acceptable C compiler found in $PATH
see `config.log` for more details
Can you please tell me next what should I do?
@Apurba,
Install C Compiler (GCC) using the following command as per your Linux distribution (run as root).
can you help me?
root@debian:/home/rogerio/Área de trabalho/Python-3.6.0# make install
if test “no-framework” = “no-framework” ; then \
/usr/bin/install -c python /usr/local/bin/python3.6m; \
else \
/usr/bin/install -c -s Mac/pythonw /usr/local/bin/python3.6m; \
fi
if test “3.6” != “3.6m”; then \
if test -f /usr/local/bin/python3.6 -o -h /usr/local/bin/python3.6; \
then rm -f /usr/local/bin/python3.6; \
fi; \
(cd /usr/local/bin; ln python3.6m python3.6); \
fi
if test -f libpython3.6m.a && test “no-framework” = “no-framework” ; then \
if test -n “” ; then \
/usr/bin/install -c -m 555 /usr/local/bin; \
else \
/usr/bin/install -c -m 555 libpython3.6m.a /usr/local/lib/libpython3.6m.a; \
if test libpython3.6m.a != libpython3.6m.a; then \
(cd /usr/local/lib; ln -sf libpython3.6m.a libpython3.6m.a) \
fi \
fi; \
if test -n “”; then \
/usr/bin/install -c -m 555 /usr/local/lib/; \
fi; \
else true; \
fi
if test “x” != “x” ; then \
rm -f /usr/local/binpython3.6-32; \
lipo \
-output /usr/local/bin/python3.6-32 \
/usr/local/bin/python3.6; \
fi
running build
running build_ext
INFO: Can’t locate Tcl/Tk libs and/or headers
warning: building with the bundled copy of libffi is deprecated on this platform. It will not be distributed with Python 3.7
checking build system type… x86_64-unknown-linux-gnu
checking host system type… x86_64-unknown-linux-gnu
checking target system type… x86_64-unknown-linux-gnu
/home/rogerio/Área de trabalho/Python-3.6.0/Modules/_ctypes/libffi/configure: line 2868: cd: too many arguments
checking for gsed… sed
checking for a BSD-compatible install… /usr/bin/install -c
checking whether build environment is sane… configure: error: unsafe srcdir value: ‘/home/rogerio/Área de trabalho/Python-3.6.0/Modules/_ctypes/libffi’
Failed to configure _ctypes module
*** WARNING: renaming “_ctypes” since importing it failed: build/lib.linux-x86_64-3.6/_ctypes.cpython-36m-x86_64-linux-gnu.so: cannot open shared object file: No such file or directory
error: [Errno 2] No such file or directory: ‘build/lib.linux-x86_64-3.6/_ctypes.cpython-36m-x86_64-linux-gnu.so’ -> ‘build/lib.linux-x86_64-3.6/_ctypes.cpython-36m-x86_64-linux-gnu_failed.so’
Makefile:617: recipe for target ‘sharedmods’ failed
make: *** [sharedmods] Error 1
root@debian:/home/rogerio/Área de trabalho/Python-3.6.0#
@Rogerio,
Have you installed necessary development dependencies on the system? If not, please install it as shown in the article, before installing Python from sources..
how do i uninstall python3.5.2
I thought that installing 3.6 on Linux without care can wreck your system, my understanding is that Linux uses 2.x for yum. Is this true? Do you have to install it separately from 2.x? If so, how do you do that? Sorry, I’m new to this..
Diane,
You can rest assured that you won’t wreck your system by following the steps outlined in this article :). And by the way, Python3.x and Python2.x can coexist in the same problem without issues. However, problems may arise if you try to change the symbolic links that point to the binaries — python points to python version 2 whereas python3 points to version 3. Hope this helps.
Hi,
An easy way to get precompiled packages is with conda package manager. You can install miniconda: https://conda.io/miniconda.html
And then create a python 3.6 env in a virtualenv-style:
conda create -n mypy36_env python=3.6
source activate mypy36_env