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


124

我正在尝试在AWS EC2实例上安装python 3.x,并且:

sudo yum install python3

不起作用:

No package python3 available.

我已经四处搜寻,找不到其他人遇到这个问题,所以我在这里问。我必须手动下载并安装它吗?


1
可能是的,它可能还不适用于Amazon Linux(或说明您是否使用其他操作系统)。
Simeon Visser 2014年


嗨,是的,它是“标准” Amazon Linux操作系统。
乐于

@BMW与您链接的答案很有帮助,但不足以使其独立运行。
Jake_Howard 2014年

由于AMI底层经常更改,因此查看最新计算机的发行说明可能会很有用,可在此处找到:aws.amazon.com/amazon-linux-ami/#Release_Notes
slushy

Answers:


239

如果你做一个

sudo yum list | grep python3

您会看到,虽然它们没有“ python3”软件包,但确实有“ python34”软件包或更新的发行版,例如“ python36”。安装起来很简单:

sudo yum install python34 python34-pip

1
这似乎是更简单的答案。在@Jake_Howard发布答案与您这样做之间,AWS是否更新了其软件包?
罗马,

7
要使用pip3,请添加以下符号链接#ln -s /usr/bin/pip-3.4 / usr / bin / pip3
Ray Vahey

10
sudo yum install python34对我不起作用。它说No package python34 available.
Sohan Shirodkar

2
@SohanShirodkar,您可能不走运,只是获得了一个新版本-他们9月份的版本已移至python35...,在这里您可以看到最新版本:aws.amazon.com/amazon-linux-ami/#Release_Notes
肮脏的

5
在2018年sudo yum install python36也可用。也不要忘记安装最新的pip:python3 -m pip install --user --upgrade pip然后您就可以安装python3 -m pip install --user virtualenv虚拟环境了。参考:package.python.org/guides/installing-using-pip-and-virtualenv
Emmanuel NK,

54

注意:自2018年末以来,这对于Amazon Linux 2的当前版本可能已过时(请参阅评论),您现在可以通过进行直接安装yum install python3

在Amazon Linux 2中python3[4-6]默认的yum存储库中没有,而是Amazon Extras库

sudo amazon-linux-extras install python3

如果要使用它设置隔离的虚拟环境,请执行以下操作:使用yum install'd virtualenv工具似乎无法可靠地工作。

virtualenv --python=python3 my_venv

调用venv模块/工具不太麻烦,您可以python3 --version事先检查一下它是否是您想要/期望的。

python3 -m venv my_venv

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

“主题python3的支持终止日期为2018-08-22”已不再受支持
zenbeni

@zenbeni是否将默认系统Python撞到了Python 3?
尼克T

@NickT python3-3.7.2-4.amzn2.0.1.x86_64实际上是通过'yum install python3'安装的,您不再将amazon linux extras用于python
zenbeni

我有些困惑,如果现在已过时,为什么还要继续投票(上个月为4)。
尼克T

40

这是我用来为其他任何想要这样做的人手动安装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-重新输入答案以删除不正确的短语。为了后代:在提出问题并发布原始答案时,我不知道是否可以在特定版本的python3中使用yum(请参阅其他答案),或者这些软件包在发布之时不可用。原创。
Jake_Howard

为我工作!这几天您可以使用3.7.2代替3.4.2
Al Po

24

EC2(在Amazon Linux AMI上)当前支持python3.4和python3.5。

sudo yum install python35
sudo yum install python35-pip

这个答案的道具!python3默认情况下,Python3不在AWS实例上。在工作时在Ubuntu和AWS Linux之间进行交换非常令人沮丧!
亚当·林克

20

自Amazon Linux版本2017.09起,python 3.6现在可用:

sudo yum install python36 python36-virtualenv python36-pip

有关更多信息和其他软件包,请参见发行说明


12
pip3未链接,因此,如果您要使用它,sudo ln -s /usr/bin/pip-3.6 / usr / bin / pip3
ski_squaw

4

Amazon Linux现在支持python36。

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

4

正如@NickT所说,Amazon 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

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,您需要使用Software Collection 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

在Debian衍生产品(例如Ubuntu)上,使用apt。检查apt储存库中可用的Python版本。然后,运行类似于以下内容的命令,以替换正确的程序包名称:

sudo apt-get install python3

在Red Hat及其衍生产品上,使用yum。检查yum存储库中可用的Python版本。然后,运行类似于以下内容的命令,以替换正确的程序包名称:

sudo yum install python36

在SUSE及其衍生物上,请使用zypper。检查存储库中可用的Python版本。然后。运行类似于以下内容的命令,以替换正确的软件包名称:

sudo zypper install python3
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.