问题描述
我如何使用apt-get安装不同版本的Python?
很显然,我意识到我可以使用源码tar安装,但是我宁愿不从源安装,而是使用包管理器,因为它就是这样。当然,某些地方可以为最新的Python版本构建.deb文件(为什么python.org不在我身边),我可以参考。
我需要做些什么来引用它们,以及在升级到下一个版本时可能会产生哪些问题?
如果除了从源代码构建之外没有办法,是否有一个可以安装的(伪)包,它将提供所需的所有依赖关系,而无需单独查找和安装每个包?所以我不明白:
The necessary bits to build these optional modules were not found:
_bz2 _curses _curses_panel
_dbm _gdbm _lzma
_sqlite3 _ssl _tkinter
readline zlib
最佳解决办法
Felix Krull在https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa上为许多Ubuntu发行版提供基本上任何版本的Python(严格来说,有2.3.7版本生动的…)。
照常做:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.5
它不会覆盖仍然符号链接为python3的现有python3.4。
不要更改符号链接!显然很多系统功能在python3.5下无法正常工作。
我试过这个,之后无法打开终端,软件更新,…
cd /usr/bin
sudo rm python3
升级至Wily将使meta-package python3指向python3.5。我不希望有任何破坏,但此时不再需要外部存储库。所以为了确保安全,您可以在升级之前清除PPA。
次佳解决办法
步骤是:
sudo apt-get install libssl-dev openssl
wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
tar xzvf Python-3.5.0.tgz
cd Python-3.5.0
./configure
make
sudo make install
要检查是否安装了python,请键入python3.5 else:
sudo ln -fs /opt/Python-3.5.0/Python /usr/bin/python3.5
第三种解决办法
据我所知,至少在Docker容器中,可以明确地指出apt-get python 3。
首先我遇到了一个带有容器的Ubuntu容器:
docker run -it --rm ubuntu:latest bash
那么由于某种原因,它需要更新一些Ubuntu的东西,所以我(容器内):
apt-get update && apt-get install -y build-essential git libjpeg-dev
然后我简单地安装了python3,它似乎自动得到python 3.5:
apt-get install python3
apt-get install python3-pip
并测试点子作品是否可以下载一些东西:
pip3 install tensorflow
一切似乎都适合我。
重要提示:似乎如果你已经安装了python 3.4,那么apt-get install python3不起作用,因为它说你已经拥有它了。这似乎是我的问题之一,因为我从张量流的docker映像(特别是gcr.io/tensorflow/tensorflow:latest-devel-py3)开始,并且该映像中的某些内容(我认为它已经具有python 3.4,但它可能是其他内容)不允许我更新我的python以获得python 3.5。
注意:也可以只安装Anaconda。对于一个可以做的码头例子:
docker pull continuumio/anaconda3
docker run -i -t continuumio/anaconda3 /bin/bash
这个解决方案安装python 3.6,但我相信如果你看看它,你可以得到python 3.5,如果这就是你想要的。
注意:除非你使用docker,否则你应该使用像虚拟env或conda /anaconda这样的虚拟环境。只是想提醒人们。
第四种办法
只需按照以下步骤(测试):
第1步 – 安装必需的软件包
在安装Python之前使用以下命令来安装Python的先决条件。
sudo apt-get install build-essential checkinstall
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
第2步 – 下载Python 3.5.2
使用python官方网站下面的命令下载Python。您也可以下载最新版本来代替以下指定的内容。
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
现在提取下载的软件包。
sudo tar xzf Python-3.5.2.tgz
第3步 – 编译Python源代码
使用下面的一组命令,使用altinstall在您的系统上编译python源代码。
cd Python-3.5.2
sudo ./configure
sudo make altinstall
make altinstall用于防止替换默认的python二进制文件/usr/bin/python。
第4步 – 检查Python版本
使用下面的命令检查安装的python的最新版本。
$ python3.5 -V
Python 3.5.2
第五种办法
有许多更新的python发行版可通过Ubuntu Packages中列出的apt-get进行安装
作为示例,以下版本当前可用:
可用性随着Ubuntu发行版的不同而有所不同。例如,3.5可用于Xenial,Yakkety和Zesty,3.6可用于Yakkety和Zesty,但如果未启用,则必须启用Universe repository才能通过apt-get获取它们。要检查您的Ubuntu版本的可用性,请检查上面的链接。
快速浏览表明this answer也是有效的,因为即使对于Trusty,PPA也有3.6。
参考资料