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 ~/
我使用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-dev
repo 是基于 2.7.6 的,如果这有任何意义的话。
此外,由于我在虚拟环境中运行 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-*)?
在此先感谢您的帮助。
答案1
通过保留所有默认值并对所有非标准版本使用 Docker 解决了该问题。