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

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

显然我意识到我可以使用源tar球安装,但是我不想从源代码安装而是使用包管理器,因为它就是它的用途。 肯定有一些信誉良好的构建.deb文件,我可以参考最新的Python版本(为什么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版本运行PPA,基本上提供任何版本的Python(严重的,有2.3.7版本可生动…)。

通常做:

 sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-get update sudo apt-get install python3.5 

它不会覆盖你现有的python3.4 ,它仍然是python3.4链接为python3

不要改变符号链接! 显然有许多系统函数无法与python3.5一起使用。

我尝试了这个,然后无法打开终端,软件更新程序,…

 cd /usr/bin sudo rm python3 

升级到Wily将使元数据包python3适应指向python3.5 。 我不希望有任何破损,但此时不再需要外国存储库了。 因此,为了确保安全,您可以在升级之前清除PPA。

这个Youtube链接帮助我安装它。

步骤是:

 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 

只需按照这些步骤(测试):

第1步 – 安装必需的包

在安装之前,请使用以下命令安装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 

来源 。

据我所知,至少在一个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 

并测试pip是否可以下载:

 pip3 install tensorflow 

一切似乎都适合我。

重要说明:似乎如果你已经安装了python 3.4,那么apt-get install python3不起作用,因为它说你已经拥有它。 这似乎是我的问题之一,因为我是从tensorflow的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 -泊坞窗


注意:也可以安装Anaconda。 对于docker示例,可以执行以下操作:

 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,否则您应该使用虚拟环境,例如虚拟环境或conda / anaconda。 只是想提醒人们。

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

例如,以下版本目前可用:

python2.7

python3.2

python3.4

python3.5

python3.6

可用性因Ubuntu发布到一定程度而异。 例如,Xenial,Yakkety和Zesty可以使用3.5,Yakkety和Zesty可以使用3.6,但如果没有启用Universe存储库,则必须通过apt-get获取它们。 要检查您的Ubuntu版本的可用性,请检查上面的链接。

快速查看表明这个答案仍然有效,因为即使对于Trusty,PPA也有3.6。

我会考虑使用虚拟环境而不是通过apt-get安装python版本。

使用虚拟环境, 请参阅此处,是使用python进行开发的一个很好的实践。 它们让您将python环境与系统安装的python版本隔离开来。

此外,在安装任何库时(通过点等),您不必获得sudo访问权限。

Conda正在积极更新,允许您在托管的venvs中安装多个python版本,而无需自己设置所有内容。 二进制扩展路径问题可能已经在它使用的许多anaconda管理的依赖/ pip链中得到解决。

Ubuntu 16.04.1 LTS上你已经安装了python 2(python)和python3。

要将主题更新为最新版本 ,您可以按以下步骤操作:

1-更新软件包列表并将所有系统软件升级到可用的最新版本

 sudo apt update && sudo apt -y upgrade 

2-安装来自Ubuntu存储库的python-pip和python3-pip (替代Python包安装程序)

 sudo apt install python-pip sudo apt install python3-pip 

2′ –检查vesrions

 pip -V; pip3 -V 

3-升级pip (PyPA推荐的安装Python软件包的工具)到PyPI的最后一个版本(Python包索引)

 sudo -H pip3 install --upgrade pip sudo -H pip install --upgrade pip 

3′ –检查vesrions

 pip -V; pip3 -V 

你应该得到类似于的输出:

 pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7) pip 9.0.1 from /usr/local/lib/python3.5/dist-packages (python 3.5) 

4- (可选)为每个项目/应用程序使用python subversion,并保持不同项目所需的依赖关系。 你需要安装Virtualenv

 [sudo -H] pip install virtualenv