如何在 Debian 上单独安装最新的 Python 版本或升级?

Pie*_*rre 35 debian python package-management

我还是 Linux 的新手,所以我仍然试图了解可执行文件及其库的位置以及如何安装软件包,所以我有 Debian Wheezy 7.3,其中包含以下 Python 版本:

  • Python 2.7.3(默认)
  • 蟒蛇 2.6.8

所以在目录中/usr/bin/有这些文件,我可以从终端调用:

  • python(这是python2.7的链接)
  • python2(也是python2.7的链接)
  • python2.6(Python 2.6.8 可执行文件)
  • python2.7(Python 2.7.3 可执行文件)

在 中/usr/lib/,主要文件夹:

  • 蟒蛇2.6
  • 蟒蛇2.7

目前最新版本的 Python 是我想安装的 2.7.6,但我不知道如何安装,我尝试使用 apt-get:

apt-get install python
Run Code Online (Sandbox Code Playgroud)

它输出python is already the newest version..

那么如何安装最新版本的 Python 呢?在Python 下载页面上有源 tarball,我如何使用它来单独安装它,就像在其中包含另一个文件夹/usr/lib/一样python2.7.6,并使python链接/usr/bin/指向新的可执行文件,或者如果它不会破坏任何内容,则可以升级当前版本.

Pie*_*rre 27

好吧,经过大量搜索,我决定从源代码构建 Python,所以我从Python 下载页面下载了压缩的源代码 tarball ,现在我们需要安装该build-essential包才能编译源文件:

apt-get install build-essential
Run Code Online (Sandbox Code Playgroud)

我们还需要安装一些 Python 模块所需的这些开发包:

libbz2-dev
libsqlite3-dev
libreadline-dev
zlib1g-dev
libncurses5-dev
libssl-dev
libgdbm-dev
Run Code Online (Sandbox Code Playgroud)

接下来我们提取下载的源文件:

tar zxf Python-2.7.6.tgz
Run Code Online (Sandbox Code Playgroud)

然后我们cd进入解压目录:

cd Python-2.7.6
Run Code Online (Sandbox Code Playgroud)

并按照Python 文档上的说明进行操作:

./configure --prefix=/opt/python
make
make install # <- in the docs but don't execute: use checkinstall
Run Code Online (Sandbox Code Playgroud)

我选择安装在/opt/python我之前创建的目录下,并且我使用checkinstall包创建了一个.deb文件,以便以后可以轻松卸载,所以我们先安装它:

apt-get install checkinstall
Run Code Online (Sandbox Code Playgroud)

并将最后一行替换为make install

checkinstall
Run Code Online (Sandbox Code Playgroud)

现在我有一个新的 python 安装,/opt/python/lib/python2.7二进制文件在/opt/python/bin/python2.7.

现在我可以在命令行中运行/opt/python/bin/python2.7以使用这个 Python 版本,我们也可以创建一个指向这个可执行文件的链接,这样我们就不用输入完整路径,我将它命名为python2.7.6.

ln -s /opt/python/bin/python2.7 /usr/local/bin/python2.7.6
Run Code Online (Sandbox Code Playgroud)

该目录/opt/python/bin还将包含以后的其他可执行文件,例如您安装的pipvirtualenv或任何其他模块,因此我们可以将其添加到 PATH 环境变量中,编辑~/.profile并添加以下行:

PATH="$PATH:/opt/python/bin"
Run Code Online (Sandbox Code Playgroud)

并运行:

source ~/.profile
Run Code Online (Sandbox Code Playgroud)

我追加的路径,最终因为它包含可执行的名称,如在那些/usr/binpythonpython2并且python2.7使我们保持了更高的优先级/usr/bin


Bra*_*iam 16

您可能正在寻找virtualenvpyenv或其他一些非系统范围的方法来安装 Python。使用APT(Advance Package Tool)和 的方法dpkg,确保系统的所有部分都协调工作,因此您可能希望将python安装在单独的路径中,隐藏您可以随意调用的所有其他程序,即pyenv/的目的virtualenv。这回答了如何在不破坏系统的情况下安装最新版本的 python 。

顺便说一句,您可以在madison 中查看 Debian 中最新版本的 python,而当日最新版本的 python 2 是您指出的:

?  ~  apt-cache policy python
python:
  Installed: 2.7.5-5
  Candidate: 2.7.5-5
  Version table:
 *** 2.7.5-5 0
        500 http://ftp.us.debian.org/debian/ testing/main i386 Packages
        100 /var/lib/dpkg/status
Run Code Online (Sandbox Code Playgroud)

(不再维护pythonbrew)。