为Python 2.7设置EC2,一步一步

时间:2014-07-22 05:34:20

标签: python amazon-ec2 pip virtualenv

我一直在寻找有关如何在EC2实例上设置以下内容的逐步说明。对于新用户,我希望事情干净整洁,但所有“指南”都有不同的信息,真的让人感到困惑。

我的第一个想法是我需要做以下

  • 升级到最新版本的Python2.7(发现下载很简单,但在linux上安装并不清楚)
  • 添加点数
  • 添加Easy_Install
  • 添加Virtualenv
  • 将默认Python更改为2.7而不是2.x
  • 在virtualenv中安装其他软件包(mechanize,beautifulsoup等)

不清楚的事情:

  • 我需要百胜吗?那是默认的吗?
  • 我是否需要更新.bashrc?
  • 安装其他python包的“首选”方法是什么?我怎样才能确保我做得对?是sudo pip package_name够吗?
  • 我缺少什么?
  • 我什么时候使用sudo而不是?
  • 我是否需要添加site-packages目录,或者默认情况下是否已完成?为什么/为什么不呢?

2 个答案:

答案 0 :(得分:7)

我假设您可能不熟悉EC2,因此我建议您在继续部署EC2实例以运行Python2.7应用程序之前先浏览此FAQ

无论如何,既然您对此更为熟悉,那么我通常会通过EC2网络界面简要部署一次性实例:

  1. 使用您的凭据登录EC2信息中心
  2. 选择启动实例按钮
  3. 选择一个现代Linux发行版(因为sudo是* nix命令)
  4. 根据需求/成本选择所需的规格。
  5. 部署实例
  6. 启动实例后,根据独立SSH客户端的连接说明登录控制台(选择正在运行的实例,然后选择“连接”按钮)。
  7. 使用ssh登录服务器后,您可以将其作为标准的无头Linux服务器系统进行管理。
  8. 我的建议不是花钱(除非你有资格获得免费等级)运行EC2实例来学习这一切,我建议下载VirtualBox或VMWare Player,并在你的机器上播放和学习本地运行的Linux映像

    现在你的位不清楚:它们与正常环境没什么不同。

    1. yum是一个基于RPM或RedHat Package Manager构建的包管理系统。如果您使用其他发行版,他们可能拥有不同的包管理器。例如,其他常见的服务器发行版,如Debian和Ubuntu,他们将拥有aptitudeapt-get,ArchLinux将拥有pacman

      此外,一般情况下,您可以依赖发行版的python包,您可以使用[sudo] yum install python27[sudo] apt-get install python-2.7进行安装,具体取决于正在使用的Linux发行版。

    2. .bashrc控制正在运行的shell的设置,通常它不会为您的服务器进程执行任何操作。所以不,如果您遵循使用Python的最佳实践(将随之而来),您可以放心地放弃它。
    3. 最佳做法通常是使用virtualenv创建本地化环境,而不是在系统级别安装Python包。
    4. sudo适用于需要系统级(root)权限的任务。除非必要,否则通常要避免使用sudo(例如安装系统级软件包)。
    5. 不,virtualenv应该为您照顾。从1.4.1开始,它分发了自己的pip版本,并将从那里安装。
    6. 所以,你似乎缺少的是在virtualenv中运行Python的经验。您可能希望自己熟悉该软件包网站上的good instructions

答案 1 :(得分:0)

如果您需要的版本不在可用的仓库中,则构建python的脚本:

https://gist.github.com/AvnerCohen/3e5cbe09bc40231869578ce7cbcbe9cc

    #!/bin/bash -e

NEW_VERSION="2.7.13"

CURRENT_VERSION="$(python -V 2>&1)"
if [[ "$CURRENT_VERSION" ==  "Python $NEW_VERSION" ]]; then
    echo "Python $NEW_VERSION already installed, aborting."
    exit 1
fi

echo "Starting upgrade from ${CURRENT_VERSION} to ${NEW_VERSION}"

if [ ! -d "python_update" ]; then
   mkdir python_update
   cd python_update
   wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
   tar xfz Python-2.7.13.tgz
   cd Python-2.7.13/
else
  cd python_update
  cd Python-2.7.13/
fi
./configure --prefix /usr/local/lib/python2.7.13 --enable-ipv6
make && make install

alternatives --install /usr/bin/python python /usr/local/lib/python2.7.13/bin/python 27130
update-alternatives --refresh python
update-alternatives --auto python

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python
ln -sf /usr/local/lib/python2.7.13/bin/pip /usr/bin/pip
pip install -U virtualenv
ln -sf /usr/local/lib/python2.7.13/bin/virtualenv /usr/bin/virtualenv
echo "DONE!"
相关问题