AWS Ubuntu 14.04 升级 Python 到 2.7.10,如何处理 apt-get python-dev

Dan*_*l F 5 upgrade python ubuntu pip apt

来自 AWS 的 Ubuntu 14.04 附带了 python 2.7.6。

在对映像执行任何其他操作之前,我通过发出以下命令升级到 2.7.10

sudo apt-get -y install build-essential checkinstall libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
mkdir -p ~/python/2.7.10
cd ~/python/2.7.10
wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
tar xzf Python-2.7.10.tgz
cd Python-2.7.10
sudo ./configure
sudo make install
cd ~/
Run Code Online (Sandbox Code Playgroud)

我使用make install而不是sudo make altinstall因为我希望它成为系统上唯一的 Python 2.7,即默认版本。

我知道文档中有警告

警告:make install 可以覆盖或伪装 python 二进制文件。因此建议使用 make altinstall 而不是 make install,因为它只安装 exec_prefix/bin/pythonversion。

我应该坚持make altinstall吗?那我如何使它成为我的默认值python

我如何处理其他库,比如pip install --upgrade --force-reinstall pyopenssl编译一些 C 代码的 ?为了编译 C 代码,我需要sudo apt-get install python-dev获取头文件。这个假设是错误的吗?我对此有点困惑,因为我猜python-devrepo 中的 2.7.6 是基于 2.7.6,如果有任何意义的话。

此外,由于我在 virtualenv 中运行 pip,pip install --upgrade --force-reinstall pyopenssl在那里发布时我确实收到OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/pyOpenSSL-0.15.1.dist-info'错误,这很可能是因为我没有运行 sudo(但作为默认用户),以便将库安装到虚拟环境。这是什么原因造成的?如果我不升级而是将 Python 保留在 2.7.6,则不会发生这种情况

最后一个问题:一旦我通过编译手动升级 python,我是否不允许在 repo 中使用 python-* 包(apt-get python-*)?

在此先感谢您的帮助。

Dan*_*l F 1

通过保留所有默认值并对所有非标准版本使用 Docker 解决了这个问题。