当前位置: 首页>>技术问答>>正文


如何使用apt-get安装不同的Python版本?

, , ,

问题描述

我如何使用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。

次佳解决办法

这个Youtube link帮助我安装它。

步骤是:

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。


信用:当我询问以下内容时我发现了这一点:https://stackoverflow.com/questions/42122826/can-one-use-python-3-5-in-a-docker-container-based-out-of-the-tensorflow-docker


注意:也可以只安装Anaconda。对于一个可以做的码头例子:

docker pull continuumio/anaconda3
docker run -i -t continuumio/anaconda3 /bin/bash

从他们的官方网站:https://hub.docker.com/r/continuumio/anaconda3/

这个解决方案安装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

Source

第五种办法

有许多更新的python发行版可通过Ubuntu Packages中列出的apt-get进行安装

作为示例,以下版本当前可用:

python2.7

python3.2

python3.4

python3.5

python3.6

可用性随着Ubuntu发行版的不同而有所不同。例如,3.5可用于Xenial,Yakkety和Zesty,3.6可用于Yakkety和Zesty,但如果未启用,则必须启用Universe repository才能通过apt-get获取它们。要检查您的Ubuntu版本的可用性,请检查上面的链接。

快速浏览表明this answer也是有效的,因为即使对于Trusty,PPA也有3.6。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/579.html,未经允许,请勿转载。