我有一个运行标准 AMI 的 EC2 实例,并且已经用尽我的能力,使用 yum 和类似途径将 python 更新到 2.7.4 或 3.3.1 以满足我需要使用的库。
不幸的是,虽然我可以轻松安装 2.6.X,并且只需稍微多花一点功夫就可以安装 2.7.3,但我似乎无法找到一种方法来在这个 AMI 上获得我想要的版本,而无需从源代码进行编译。
这是我唯一的出路吗?我没有足够的经验从源代码编译软件包,因此无法确信可以正确完成。
此外,在安装我想要的版本之前,我是否应该卸载通过 yum 添加的旧版本的 Python?
答案1
选项:
下载并从源代码编译。没那么难,然后只需使用 #!/usr/local/bin/python 或您安装的任何位置。
另一个选择是安装/设置具有 2.7 和 3 包的 EPEL 仓库,然后执行 yum 安装。
答案2
我很高兴看到为 Yum 启用 EPEL 存储库的建议。
它看起来比整个下载、解压、编译序列简单得多!
然而,目前 Python v.3 似乎在 EPEL repo 中不可用。
这是如何出现的:(http://aws.amazon.com/amazon-linux-ami/faqs/#epel)
“如何启用企业 Linux 的额外软件包 (EPEL) 存储库?
修改 /etc/yum.repos.d/epel.repo,在 [epel] 部分下,将 enabled=0 改为 enabled=1。
要临时启用 EPEL 6 存储库,请使用 yum 命令行选项 --enablerepo=epel。
请注意,Amazon Linux AMI 存储库的配置优先级高于任何第三方存储库。原因是 Amazon Linux AMI 中的一些软件包也位于第三方存储库中,我们希望确保默认情况下安装 Amazon Linux AMI 版本。"
我立即尝试通过“yum search”进行搜索:
$ yum 搜索所有 --enablerepo=epel python3
已加载的插件:priorities、security、update-motd、upgrade-helper amzn-main | 2.1 kB 00:00 amzn-updates | 2.3 kB 00:00 epel/metalink | 12 kB 00:00 epel | 4.2 kB 00:00 epel/primary_db | 6.0 MB 00:02 由于存储库优先级保护,656 个软件包被排除 epel/pkgtags | 998 kB 00:01 ========================================================匹配:python3 ========================================================== python-apipkg.noarch:Python 命名空间控制和延迟导入机制 python-futures.noarch:从 Python 3.2 反向移植 parallel.futures 包 python-unicodenazi.noarch:查找 unicode/字节串比较和其他问题的模块 已加载的插件:优先级、安全性、update-motd、升级助手
想法很棒,但是正如经常发生的那样,总有一些障碍在等待着它……
答案3
这是截至 2015 年 4 月针对 AWS EC2 用户的更新答案:
从 Amazon Linux AMI 2015.03 开始,Amazon 默认直接支持 Python 2.7 或 Python 3。Python 2.6、2.7 和 3.4 可以同时安装并通过命令进行管理alternatives
。
所有这些都在上半部分清楚地记录下来: http://aws.amazon.com/amazon-linux-ami/2015.03-release-notes/