我一直在寻找有关如何在EC2实例上设置以下内容的逐步说明。对于新用户,我希望事情干净整洁,但所有“指南”都有不同的信息,真的让人感到困惑。
我的第一个想法是我需要做以下
不清楚的事情:
sudo pip package_name
够吗?答案 0 :(得分:7)
我假设您可能不熟悉EC2,因此我建议您在继续部署EC2实例以运行Python2.7应用程序之前先浏览此FAQ。
无论如何,既然您对此更为熟悉,那么我通常会通过EC2网络界面简要部署一次性实例:
sudo
是* nix命令)我的建议不是花钱(除非你有资格获得免费等级)运行EC2实例来学习这一切,我建议下载VirtualBox或VMWare Player,并在你的机器上播放和学习本地运行的Linux映像
现在你的位不清楚:它们与正常环境没什么不同。
yum
是一个基于RPM
或RedHat Package Manager构建的包管理系统。如果您使用其他发行版,他们可能拥有不同的包管理器。例如,其他常见的服务器发行版,如Debian和Ubuntu,他们将拥有aptitude
或apt-get
,ArchLinux将拥有pacman
。
此外,一般情况下,您可以依赖发行版的python包,您可以使用[sudo] yum install python27
或[sudo] apt-get install python-2.7
进行安装,具体取决于正在使用的Linux发行版。
.bashrc
控制正在运行的shell的设置,通常它不会为您的服务器进程执行任何操作。所以不,如果您遵循使用Python的最佳实践(将随之而来),您可以放心地放弃它。virtualenv
创建本地化环境,而不是在系统级别安装Python包。sudo
适用于需要系统级(root)权限的任务。除非必要,否则通常要避免使用sudo
(例如安装系统级软件包)。virtualenv
应该为您照顾。从1.4.1开始,它分发了自己的pip
版本,并将从那里安装。所以,你似乎缺少的是在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!"