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

Ama*_*rus 13 debian python

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

那么 Ubuntu 死蛇 PPA 的 debian 版本是什么?

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

lau*_*hub 15

我想说 Debian 中没有与 Ubuntu 的 deadsnakes PPA 相当的产品

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

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

先决条件

安装依赖项:

sudo apt-get update && sudo apt-get install libssl-dev openssl
Run Code Online (Sandbox Code Playgroud)

构建Python

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

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
Run Code Online (Sandbox Code Playgroud)

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

sudo mkdir /opt/python-3.5.2
./configure --prefix=/opt/python-3.5.2
Run Code Online (Sandbox Code Playgroud)

选择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
Run Code Online (Sandbox Code Playgroud)

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


注意:对于 python 3.9.16(可能是任何+3.9版本),您可能还需要安装该库:libffi-dev因此依赖项将是:

sudo apt-get update && sudo apt-get install libssl-dev openssl
Run Code Online (Sandbox Code Playgroud)


Gil*_*il' 10

使用 PPA

您可以在 Debian 上使用 PPA。选择一个Ubuntu的版本,从轻微的您的Debian版本之前,它应该拥有所有必要的库文件。对于喘息,oneiric PPA 似乎还可以(但它缺少更新的 Python 版本)。对于 jessie,可信赖的 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 
Run Code Online (Sandbox Code Playgroud)

下载PPA签名密钥

gpg --keyserver keyserver.ubuntu.com --recv-keys DB82666C
Run Code Online (Sandbox Code Playgroud)

然后将密钥添加到 APT 密钥数据库中

gpg --export DB82666C | sudo apt-key add -
Run Code Online (Sandbox Code Playgroud)

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

如果由于某些原因无法使 PPA 工作(也许您找不到与您拥有的库配合使用的版本),您可以下载源代码并为您的发行版重新编译它们。

使用 chroot 系统

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

  • 您应该避免在 Debian 上使用 Ubuntu PPA,因为它可能会导致问题或其他冲突。(也可以对多个 Python 版本使用 pyenv 虚拟环境) (2认同)