如何在AWS EC2实例上安装Python 3?

183
我正在尝试在AWS EC2实例上安装Python 3.x,以下是具体操作:
sudo yum install python3

无法工作:

No package python3 available.

我已经在Google上搜索过了,但是找不到其他人遇到过这个问题,所以我在这里问一下。我需要手动下载和安装它吗?


1
可能是,它可能尚未适用于Amazon Linux(或者如果您使用的是不同的操作系统,请澄清)。 - Simeon Visser
可能是在RHEL上安装Python3的重复问题。 - BMW
1
嗨,是的,这是“标准”的亚马逊Linux操作系统。我很乐意手动安装,但有一些东西缺失(我认为最好在浪费时间之前检查一下 :))。 - Jake_Howard
@BMW,你提供的答案很有帮助,但是仅凭它还不足以让它自行运行。 - Jake_Howard
由于 AMI 经常发生变化,因此检查最新机器的发布说明可能会很有用。您可以在此处找到:https://aws.amazon.com/amazon-linux-ami/#Release_Notes - slushy
1
现在我可以在Amazon Linux 2 AMI上运行。sudo yum安装python3。 - Minh Hoàng
12个回答

311

如果你进行一项

sudo yum list | grep python3

您将会看到,尽管他们没有“python3”软件包,但是他们有一个“python34”软件包,或者像“python36”这样的更近期的版本。安装它非常容易:

sudo yum install python34 python34-pip

1
这似乎是更简单的答案。AWS 在 @Jake_Howard 发布答案和你回答之间更新了他们的软件包吗? - Roman
9
要使用pip3,请添加以下符号链接 # ln -s /usr/bin/pip-3.4 /usr/bin/pip3 - Ray Vahey
16
我无法执行 sudo yum install python34 命令,它显示 No package python34 available.。请帮我解决这个问题。 - Sohan Shirodkar
3
@SohanShirodkar,你可能很不幸地遇到了新版本,因为他们在 9 月份的发布中转向了 python35 …… 在这里你可以看到最新的版本发布信息:https://aws.amazon.com/amazon-linux-ami/#Release_Notes - slushy
7
2018年,sudo yum install python36也可用。别忘了安装最新的pip:python3 -m pip install --user --upgrade pip 然后你可以使用python3 -m pip install --user virtualenv创建虚拟环境。参考链接:https://packaging.python.org/guides/installing-using-pip-and-virtualenv/ - Emmanuel N K
显示剩余6条评论

85
注意:由于2018年末的更改(请参见评论),对于当前版本的Amazon Linux 2,此信息可能已过时,现在可以通过yum install python3直接安装它。
在Amazon Linux 2中,默认的yum资源库中没有python3[4-6],而是有Amazon Extras Library
sudo amazon-linux-extras install python3
如果您想使用它设置隔离的虚拟环境,则使用通过 yum install 安装的 virtualenv 工具似乎不太可靠。

virtualenv --python=python3 my_venv

调用venv模块/工具不太繁琐,你可以在此之前使用python3 --version双重检查它是否是你想要/期望的。

python3 -m venv my_venv

其它可以安装的东西(截至18年1月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 ]

Python3主题的支持已于2018年8月22日结束,不再受支持。 - zenbeni
@zenbeni 默认的系统Python是否已经升级到Python 3了? - Nick T
@NickT python3-3.7.2-4.amzn2.0.1.x86_64 实际上是通过 'yum install python3' 安装的,您不再需要使用 Amazon Linux Extras 来安装 Python。 - zenbeni
2
我有点困惑,为什么这个已经过时的东西在过去一个月里还会得到4个赞。 - Nick T

47

以下是我用于手动安装python3的步骤,供其他想要这样做的人参考,因为它并不是非常直截了当。 编辑: 使用yum软件包管理器(请参阅其他答案)几乎肯定更容易。

请注意,在执行此操作之前,您可能需要执行sudo yum groupinstall 'Development Tools',否则pip将无法安装。

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

8
要使用pip3,还需要将其与sudo ln -s /opt/python3/bin/pip3 /usr/bin/pip3链接起来。 - golmschenk
@xpmatteo - 哪一部分有问题?你反对的是步骤还是方法? - Jake_Howard
@Jake_Howard,手动安装Python3并�是唯一的方法。虽然这是一个选项,但你也�以�其他人�到的那样使用“yum install python35�命令。如�您能修改您的答案,我将撤销我的投票🙂 - xpmatteo
@xpmatteo - 重新措辞回答以删除不正确的短语。为了后人:在提问和发布原始答案时,我不知道可以使用yum与特定版本的python3(请参见其他答案),或者这些软件包在原始编写时不可用。 - Jake_Howard
这是一个非常好的答案,因为您可以使用相同的方法安装任何版本。软件包管理器并不包括所有内容。 - srcolinas
显示剩余2条评论

27

EC2(在亚马逊Linux AMI上)目前支持python3.4和python3.5。

sudo yum install python35
sudo yum install python35-pip

这个答案很好!在 AWS 实例上,默认情况下 Python3 不是 python3。当在 Ubuntu 和 AWS Linux 之间工作时,交换非常令人沮丧! - Adam Link
这个命令可以确认您的最新版本是否为3.5:sudo yum list | grep python3,如果是,则可以确认安装成功,输入python3 --version即可。请注意,使用python命令将返回v2版本。 - Jeremy Thompson
sudo amazon-linux-extras install python3.8 - vaquar khan

21

截至亚马逊Linux 2017.09版本,Python 3.6现已可用:

sudo yum install python36 python36-virtualenv python36-pip

查看发布说明以获取更多信息和其他软件包


13
如果你想使用pip3,但提示“pip3未链接”,那么请运行以下命令:sudo ln -s /usr/bin/pip-3.6 /usr/bin/pip3。这将建立pip3的符号链接。 - ski_squaw
-s /usr/bin/pip-3.6 /usr/bin/pip3 failed for me so I ended up using pip-3.6 install xyz - Jeremy Thompson

4

Amazon Linux现在支持Python 3.6。

但是,python36-pip不可用。因此需要采用不同的方法。

sudo yum install python36 python36-devel python36-libs python36-tools

# If you like to have pip3.6:
curl -O https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py

这是所有其他方法中在2020年最简单有效的方式。 - russellthehippo
1
这在Amazon Linux 2上不起作用 - python36和所有其他相关软件包现在都保存在amazon-linux-extras中,并且不会安装其他人可能具有依赖关系的预期软件包。 - bsplosion

4

正如@NickT所说,在亚马逊Linux 2的默认yum存储库中没有python3 [4-6],截至今天它使用的是3.7。从这里所有答案来看,我们可以说随着时间的推移这将会得到改变。

我在寻找Amazon Linux 2上的python3.6,但是amazon-linux-extras显示了很多选项,但并没有Python。实际上,你可以尝试在epel存储库中查找所需版本:

sudo amazon-linux-extras install epel

yum search python | grep "^python3..x8"

python34.x86_64 : Version 3 of the Python programming language aka Python 3000
python36.x86_64 : Interpreter of the Python programming language

不幸的是,它现在只显示python34.x86_64版本,他们一定删除了相当烦人的python36.x86_64版本。 - dragon788

3

查看可用的软件包

A> amazon-linux-extras

从列表中找到所需的带版本的python软件包

B> 运行以下命令启用相应版本的python: sudo amazon-linux-extras enable python<version_available>

C> 运行以下命令清理metadata并安装python<version_available>: sudo yum clean metadata && sudo yum install python<version_available>


1

除了已经有的所有答案,我想补充一下我在运行CentOS 7的AWS EC2实例上安装Python3的步骤。您可以在此链接中找到所有详细信息。

https://aws-labs.com/install-python-3-centos-7-2/

首先,我们需要启用SCL。SCL是一个社区项目,允许您在同一系统上构建、安装和使用多个软件版本,而不会影响系统默认软件包。
sudo yum install centos-release-scl

现在我们拥有了SCL仓库,可以安装python3。
sudo yum install rh-python36

要访问Python 3.6,您需要使用软件集合scl工具启动新的shell实例:
scl enable rh-python36 bash

如果你现在检查Python版本,你会注意到Python 3.6是默认版本。
python --version

需要指出的是,在此 shell 会话中,Python 3.6 仅为默认 Python 版本。如果您退出会话或从另一个终端打开新会话,则 Python 2.7 将是默认的 Python 版本。

现在,输入以下命令安装 Python 开发工具:

sudo yum groupinstall ‘Development Tools’

现在创建一个虚拟环境,以避免默认的Python包被搞乱。
mkdir ~/my_new_project
cd ~/my_new_project
python -m venv my_project_venv

使用此虚拟环境,请执行以下操作:

source my_project_venv/bin/activate

现在,您已经设置了带有python3的虚拟环境。

0
尝试这个:

sudo yum install python34 python34-pip


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接