How do I install Python 3 on an AWS EC2 instance? How do I install Python 3 on an AWS EC2 instance? python python

How do I install Python 3 on an AWS EC2 instance?


If you do a

sudo 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:

sudo yum install python34 python34-pip


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.

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

virtualenv --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.

python3 -m venv my_venv

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

[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 ]


Here are the steps I used to manually install python3 for anyone else who wants to do it as it's not super straight forward. EDIT: It's almost certainly easier to use the yum package manager (see other answers).

Note, you'll probably want to do sudo yum groupinstall 'Development Tools' before doing this otherwise pip won't install.

wget https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tgztar zxvf Python-3.4.2.tgzcd Python-3.4.2sudo yum install gcc./configure --prefix=/opt/python3makesudo yum install openssl-develsudo make installsudo ln -s /opt/python3/bin/python3 /usr/bin/python3python3 (should start the interpreter if it's worked (quit() to exit)