为Python2.7逐步设置EC2

2024-04-20 07:16:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在到处寻找如何在EC2实例上设置以下内容的逐步解释。对于一个新用户,我希望一切都是干净和正确的,但所有的“指南”都有不同的信息,真的很混乱。

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

  • 升级至Python2.7的最新版本(查找下载文件很容易,但在linux上安装还不清楚)
  • 添加Pip
  • 添加简易安装
  • 添加Virtualenv
  • 将默认Python更改为2.7而不是2.x
  • 安装其他软件包(virtualenv中的机械化、美化组等)

不清楚的事情:

  • 我需要百胜吗?这是默认的吗?
  • 我需要用任何东西更新.bashrc吗?
  • 安装其他python包的“首选”方法是什么?我怎样才能确保我做得对?sudo pip package_name够了吗?
  • 我错过了什么?
  • 我什么时候不用越野车?
  • 我需要添加一个网站包目录还是默认情况下完成?为什么/为什么不?

Tags: pip文件实例方法用户版本信息virtualenv
2条回答

我假设您可能不熟悉EC2,所以我建议在继续部署EC2实例以运行Python2.7应用程序之前,先检查一下FAQ

不管怎样,现在您已经稍微熟悉了这一点,下面是我通常如何通过EC2 web界面部署一次性实例的简要说明:

  1. 使用凭据登录EC2仪表板
  2. 选择启动实例按钮
  3. 选择一个现代的Linux发行版(因为sudo是一个*nix命令)
  4. 根据需要/成本选择所需规格。
  5. 部署实例
  6. 实例启动后,按照独立SSH客户端的连接说明登录控制台(选择正在运行的实例,然后选择connect按钮)。
  7. 使用ssh登录到服务器后,您可以将其作为标准的无头Linux服务器系统进行管理。

我的建议是不要花钱(除非你有资格使用免费层)运行一个EC2实例来了解所有这些,我建议下载VirtualBox或VMWare Player并在你的机器上播放和学习一个本地运行的Linux映像。

现在说你不清楚的一点:它们和正常环境没有太大的不同。

  1. yum是建立在RPM或RedHat包管理器之上的包管理系统。如果使用其他发行版,它们可能有不同的包管理器。例如,其他常见的服务器发行版,比如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用于需要系统级(根)权限的任务。除非有必要(例如安装系统级包),否则通常要避免使用sudo
  5. 不,virtualenv应该替你处理。从1.4.1开始,它发布了自己的pip版本,并将从那里安装。

所以,您似乎缺少的是在virtualenv中运行Python的经验。包的网站上有good instructions您可能想熟悉一下。

如果所需版本不在可用的repo中,则生成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!"

相关问题 更多 >