在debian上安装新版本和旧版本的python?


12

如何在Debian(jessie)上安装python的附加版本。在Ubuntu上,我可以使用“ deadsnakes” PPA,它将为我提供我想要的任何python版本,并在命令中提供版本名称(例如python33python 3.3)。这使我可以将它们彼此并排安装。我可以使用virtualenvs为特定版本安装特定的python软件包,而不会弄乱系统软件包。我维护了一些python库,它们需要在许多版本的python上工作。如果我安装了python二进制文件,那么tox将负责为每个python版本使用virtualenvs。

那么Ubuntu的Deadsnakes PPA的debian等效功能是什么?

更新我想安装python:2.6、2.7、3.3、3.4和3.5。


您可以指定要安装的Python版本吗?我认为Jessie有几个可用的版本。
Faheem Mitha 2015年

我认为您最好从源代码安装各种Python版本。
Celada 2015年

Answers:


9

使用PPA

您可以在Debian上使用PPA。选择一个Ubuntu的版本,从轻微的您的Debian版本之前,它应该拥有所有必要的库文件。对于喘不过气来,oneiric PPA似乎还可以(但是缺少最新的Python版本)。对于杰西来说,值得信赖的PPA应该有效。

要在Debian上添加PPA,请创建一个/etc/apt/sources.list.d/deadsnakes.list包含以下内容的文件:

deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu trusty main 
deb-src http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu trusty main 

下载PPA签名密钥

gpg --keyserver keyserver.ubuntu.com --recv-keys DB82666C

然后使用以下命令将密钥添加到APT密钥数据库

gpg --export DB82666C | sudo apt-key add -

最后运行apt-get update并安装所需的软件包。

如果由于某些原因而无法使PPA正常运行(也许找不到与您的库兼容的版本),则可以下载源代码并重新编译它们以进行分发。

使用chroot系统

我通常要测试与其他版本的兼容性的方法是在chroot系统中运行较旧或较新的发行版。例如,您可以使用感兴趣的Python版本安装Ubuntu的各种版本,也可以在chroot中安装trusty并在其中安装PPA。有关更多信息,请参见我的schroot指南


1
您应该避免在Debian上使用Ubuntu PPA,因为它可能会引起问题或其他冲突。(也可以将pyenv虚拟环境用于多个Python版本)
Thomas Ward,

我可以确认已经使用这种方法在当前的debian测试中成功安装了python 2.6、2.7、3.1、3.2、3.3、3.5和3.6。我遇到的唯一警告是,我需要在这里找到旧版本的文件:packages.debian.org/jessie/libssl1.0.0。我还使用了xenial (16.04)版本的软件包(当前lts),尽管我相信trusty仍然有效。libssl1.0.0
Att Righ

1

我会说没有Debian等同于Ubuntu的Deadsnakes PPA

在Debian下,不建议使用Ubuntu软件包或存储库。当这篇文章出现在搜索引擎中时,我在这里提出一个答案,对于Debian系统来说,这个答案不太危险。

可以手动安装Python。例如,您可以按照以下说明安装3.5.2版本

先决条件

安装依赖项:

sudo apt-get update && sudo apt-get install libssl-dev openssl

构建Python

您可以使用--prefix来自configure命令的参数在特定文件夹中构建Python :

wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
tar zxf Python-3.5.2.tgz
cd Python-3.5.2/
./configure --prefix=/usr/local
make
sudo make install

/usr/local可以使用另一基本目录代替。举个例子:

sudo mkdir /opt/python-3.5.2
./configure --prefix=/opt/python-3.5.2

选择python版本

使用PATH环境变量可以帮助选择要使用的正确python版本。但是也可以使用符号链接:

sudo ln -s /opt/python-3.5.2/bin/python3.5 /usr/local/bin/python3
sudo ln -s /opt/python-3.5.2/bin/pip3.5 /usr/local/bin/pip3

使用-f选项将允许您替换现有的符号链接

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.