Amazon has it's own Linux with extras, the command is:

    sudo amazon-linux-extras install python3.8

taken from https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install-linux.html but after installing 3.7 from there, there is the above update command appearing during the install telling how to upgrade. Ahh the convolution of hosted virtual machines, still easier than trying to get a console command line login on any other Linux on AWS.

It does rebuild the python to 3.8, cleaning up files from 3.7, so boom a clean build of 3.8 thanks to Amazon.

All that being said, the default "python" will still be 2.7 as there is no backward compatibility, and many think getting rid of 2.7 will cause problems.

So what NOT TO DO NEXT as we are done is:

    sudo rm /usr/bin/python  (which is only a link to /usr/bin/python2.7)
    sudo ln -s /usr/bin/python3.8 /usr/bin/python

but usually peeps simply type python3.8 to specifically run the new version.

Answer from Light Bringer on Stack Overflow
Top answer
1 of 5
54

Amazon has it's own Linux with extras, the command is:

    sudo amazon-linux-extras install python3.8

taken from https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install-linux.html but after installing 3.7 from there, there is the above update command appearing during the install telling how to upgrade. Ahh the convolution of hosted virtual machines, still easier than trying to get a console command line login on any other Linux on AWS.

It does rebuild the python to 3.8, cleaning up files from 3.7, so boom a clean build of 3.8 thanks to Amazon.

All that being said, the default "python" will still be 2.7 as there is no backward compatibility, and many think getting rid of 2.7 will cause problems.

So what NOT TO DO NEXT as we are done is:

    sudo rm /usr/bin/python  (which is only a link to /usr/bin/python2.7)
    sudo ln -s /usr/bin/python3.8 /usr/bin/python

but usually peeps simply type python3.8 to specifically run the new version.

2 of 5
6

These answers are now out of date as of Amazon Linux 2023. Amazon Linux 2023 FAQ

Q: Does AL2023 have Amazon-Linux-Extras like AL2?

A: No, AL2023 does not have extras. For higher-level software packages like language runtimes, we will use the quarterly release where we will add major/minor updates to packages as separate namespaced packages in addition to the default package provided in the repository. For example, default Python version in Amazon Linux 2023 may be 3.8, but we will add Python 3.9 (python39) as a separate namespaced package whenever it is made available. These additional packages will closely follow their upstream release cadence and support model and their support policies can be accessed by the package manager for compliance and security use cases. Default packages will continue to be supported throughout the life of AL2023.

Python is installed by default as python3 exact version is managed by Amazon. It is possible to pick a different version, but I have not found the instructions, since the currently install 3.9 works for my needs.

python3 --version
Python 3.9.16

python3x --version
always generated
-bash: python3x: command not found
regardless of choice of x

Top answer
1 of 2
3
Guess you are concerned that Python 3.7 EOL June this year If you want to avoid compiling and is fine with older version, python 3.8 is available from amazon-linux-extras You will need to remove python 3.7 first. Possible commands as below ``` # python3 --version Python 3.7.16 # sudo yum remove python3 # amazon-linux-extras | grep python 36 python3.8 available [ =stable ] # sudo amazon-linux-extras install python3.8 # rpm -ql python38 /usr/bin/pydoc3.8 /usr/bin/python3.8 /usr/share/doc/python38-3.8.16 /usr/share/doc/python38-3.8.16/README.rst /usr/share/man/man1/python3.8.1.gz # python3.8 --version Python 3.8.16 # sudo ln -s /usr/bin/python3.8 /usr/bin/python3 # sudo ln -s /usr/bin/pydoc3.8 /usr/bin/pydoc # python3 --version Python 3.8.16 ```
2 of 2
0
Hello, The latest stable version of Python available for Amazon Linux 2 AMI is 3.8 and you may install it using the amazon-linux-extras library. [+] Extras library (Amazon Linux 2) - https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-linux-ami-basics.html#extras-library Regarding OpenSSL, Amazon Linux 2 comes with OpenSSL 1.0.2 by default. [+] https://docs.aws.amazon.com/linux/al2023/ug/compare-with-al2.html Any security concerns and CVE’s regarding OpenSSL could be found in the document below : https://alas.aws.amazon.com/alas2.html In order to apply the security updates for OpenSSL, you may run the “yum update openssl” command on the instance. Additionally, you may keep an eye on the documents below for information about the upcoming features and announcements to services in order to check for the availability of the latest versions of the above packages in Amazon Linux 2 : - What’s New - https://aws.amazon.com/new/ - AWS Blog - https://aws.amazon.com/blogs/aws/ Further, you may manually install the required Python version (Python 3.10) from the official Python download page and configure it on your instance. Please find below a third-party article that I hope would be helpful to you : https://techviewleo.com/how-to-install-python-on-amazon-linux-2/
Discussions

Python 3.9 in amazon-linux-extras
I'd like to request adding Python 3.9 as an official amazon-linux-extras topic, so that we could more easily install in Amazon Linux images with `amazon-linux-extras install python3.9`. Thank you! More on repost.aws
🌐 repost.aws
1
7
February 17, 2022
Amazon Linux 2 Python incompatibility woes
I didn’t have any issue with 3.9 and epel on al2. But I rarely use it. As someone else said pyenv or i generally take it a step further and just use docker since all of our stuff is already set up to easily run a container anywhere. I am generally so over touching python in the host os at all, or php, or really anything. Having to depend on their repos and all of that. No thanks. Take a few minutes and just forget what your host os is and containerize it where you will never again have those issues. I personally start with alpine but there are some good official and updated bases you can use to get you a full python environment on alpine in seconds. And customize anything else you need. That also makes sure if you ever change a host os that doesn’t have the same default modules installed you don’t even have to care. I would say forget packaging your software with rpm and go docker. Same concept. You publish a repo and version and all that. It just doesn’t have to care about the host os. At all (well, mostly ;)) More on reddit.com
🌐 r/aws
12
13
September 14, 2023
Unable to Add Python3.9 from amazon-linux-extras on Amazon Linux 2
Amazon doesn’t make that version available through their repos. You can install it via EPEL though. Just note that EPEL isn’t currently an option for AL2023. More on reddit.com
🌐 r/aws
4
1
May 17, 2023
How do I install Python 3 on an AWS EC2 instance? - Stack Overflow
In Amazon Linux 2, there isn't a python3[4-6] in the default yum repos, instead there's the Amazon Extras Library. More on stackoverflow.com
🌐 stackoverflow.com
🌐
Server Fault
serverfault.com › questions › 1099013 › how-to-set-python3-command-to-work-in-aws-linux-2
python - How to set python3 command to work in aws linux 2? - Server Fault
sudo yum install -y amazon-linux-extras amazon-linux-extras | grep -i python sudo amazon-linux-extras enable python3.8 sudo yum install python3.8
🌐
GitHub
gist.github.com › Sunlighter › 87bbd2cd80971c7c0d4763ec1b5ea548
Installing Python 3.7 in Amazon Linux 2 - Gist - GitHub
This is a way to build Python 3.7 from source and temporarily install it in Amazon Linux 2 without overwriting the system Python and without interfering with the Python in amazon-linux-extras.
🌐
GitHub
gist.github.com › niranjv › f80fc1f488afc49845e2ff3d5df7f83b
Install Python 3.6 in Amazon Linux · GitHub
For Python3.6.8 this script didn't work. After all the work it says pip configured with SSL but ssl library is missing. The procedure I manage to successfully obtain was: amazon-linux-extra install python3 sudo yum -y groupinstall development sudo yum -y install zlib-devel sudo yum -y install openssl-devel bzip2-devel curl -O https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz tar xzvf Python-3.6.8.tgz cd Python-3.6.8 ./configure make altinstall yum remove python3
🌐
Reddit
reddit.com › r/aws › amazon linux 2 python incompatibility woes
r/aws on Reddit: Amazon Linux 2 Python incompatibility woes
September 14, 2023 -

A customer wants to continue to use Amazon Linux 2, I'm wanting to package some Python software for them, to be delivered via RPM.

Some dependencies are available in EPEL, and I used the Amazon instructions to install and enable that repo.

Using amazon-linux-extras installs Python 3.7, but nearly everything we need is in EPEL which is set for Python 3.6. So we insist on installing Python 3.6 from EPEL instead.

This makes we wonder how anyone is getting any work done with the Amazon Linux 2 image? Or am I doing something wrong? Is everyone just installing everything from source or using pip? The RPM packaging system appears in conflict with itself out of the box.

Find elsewhere
🌐
AWS
docs.aws.amazon.com › amazon linux › user guide › getting started with programming runtimes on al2023 › python in al2023
Python in AL2023 - Amazon Linux 2023
May 22, 2026 - AL2023 removed Python 2.7 and any components requiring Python are now written to work with Python 3.
🌐
Amazon Web Services
aws.amazon.com › compute › amazon linux 2 › faqs
Amazon Linux 2 FAQs
2 weeks ago - Yes, the MATE desktop environment is provided as an extra in Amazon Linux 2. Amazon Workspaces provides cloud Amazon Linux 2 based cloud desktops with a GUI. You can learn more ... Yes. The yumdownloader --source tool in Amazon Linux 2 provides source code access for many components. We will continue to provide critical security patches for Python ...
🌐
TecAdmin
tecadmin.net › install-python-3-8-amazon-linux
How to Install Python 3.8 on Amazon Linux – TecAdmin
April 26, 2025 - ... The Python 3.8 binary is installed ... Twitter Pinterest LinkedIn Tumblr Email WhatsApp ... “amazon-linux-extras install python3.8” will install Python/Pip 3.8....
Top answer
1 of 14
321

If you do a

Copysudo yum list | grep python3

you will see that while they don't have a "python3" package, they do have a "python34" package, or a more recent release, such as "python36". Installing it is as easy as:

Copysudo yum install python34 python34-pip
2 of 14
86

Note: This may be obsolete for current versions of Amazon Linux 2 since late 2018 (see comments), you can now directly install it via yum install python3.

In Amazon Linux 2, there isn't a python3[4-6] in the default yum repos, instead there's the Amazon Extras Library.

Copysudo amazon-linux-extras install python3

If you want to set up isolated virtual environments with it; using yum install'd virtualenv tools don't seem to reliably work.

Copyvirtualenv --python=python3 my_venv

Calling the venv module/tool is less finicky, and you could double check it's what you want/expect with python3 --version beforehand.

Copypython3 -m venv my_venv

Other things it can install (versions as of 18 Jan 18):

Copy[ec2-user@x ~]$ amazon-linux-extras list
  0  ansible2   disabled  [ =2.4.2 ]
  1  emacs   disabled  [ =25.3 ]
  2  memcached1.5   disabled  [ =1.5.1 ]
  3  nginx1.12   disabled  [ =1.12.2 ]
  4  postgresql9.6   disabled  [ =9.6.6 ]
  5  python3=latest  enabled  [ =3.6.2 ]
  6  redis4.0   disabled  [ =4.0.5 ]
  7  R3.4   disabled  [ =3.4.3 ]
  8  rust1   disabled  [ =1.22.1 ]
  9  vim   disabled  [ =8.0 ]
 10  golang1.9   disabled  [ =1.9.2 ]
 11  ruby2.4   disabled  [ =2.4.2 ]
 12  nano   disabled  [ =2.9.1 ]
 13  php7.2   disabled  [ =7.2.0 ]
 14  lamp-mariadb10.2-php7.2   disabled  [ =10.2.10_7.2.0 ]
🌐
AWS re:Post
repost.aws › knowledge-center › ec2-install-extras-library-software
Install software from the Extras Library on an AL2 EC2 instance | AWS re:Post
June 18, 2025 - $ amazon-linux-extras 2 httpd_modules ... collectd-python3 available [ =stable ] † Note on end-of-support. Use 'info' subcommand. Note: AWS regularly updates the Extras Library repository. To activate the topic that you want to use, run the following command: ... Note: Replace php8.1 with the topic name. Example output: $ sudo amazon-linux-extras enable ...
🌐
Medium
medium.com › cloud-security › fixing-your-python-version-on-aws-ec2-with-amazon-linux-149145d3a1d1
Fixing Your Python Version on AWS EC2 with Amazon Linux | by Teri Radichel | Cloud Security | Medium
February 18, 2024 - Fixing Your Python Version on AWS EC2 with Amazon Linux ACM.264 When you don’t get the version of Python you think you should be …
🌐
CloudSpinx
cloudspinx.com › home › how to › how to install python 3.13 on amazon linux 2
How To Install Python 3.13 on Amazon Linux 2 - CloudSpinx
June 4, 2025 - ... Download the latest version of Python, 3.13 by visiting the official Python release page. Alternatively, obtain the download link and pull the archive using Wget as below. wget https://www.python.org/ftp/python/3.13.1/Python-3.13.1.tgz · ...
🌐
GitHub
github.com › fhd-codes › aws-ec2-setup
GitHub - fhd-codes/aws-ec2-setup: Instructions to make an ES2 instance and installing nodejs and python on it · GitHub
For the next commands, make sure that you select the Python version that you get after running the above line 2- To enable the latest available python version · $ sudo amazon-linux-extras enable python3.8 $ sudo yum install python3.8
Author   fhd-codes