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


35

我对Linux还是很陌生,所以我仍在尝试了解可执行文件及其库在哪里以及如何安装软件包,因此我有Debian Wheezy 7.3,其中包含以下Python版本:

  • Python 2.7.3(预设)
  • 的Python 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/,主要文件夹:

  • python2.6
  • python2.7

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

apt-get install python

它输出python is already the newest version.

那么,如何安装最新版本的Python?在上Python的下载页面有源码包,我怎么可以用它来单独安装它就像另一个文件夹中的/usr/lib/一样python2.7.6,使python在链接/usr/bin/指向新的可执行文件,也许升级最新版本,如果它不会破坏任何东西。


您可以从测试/不稳定版本中反向移植Python 2.7.6,并用它替换当前的2.7.3。这很可能不会给您造成任何问题。如果是这样,您可以轻松地还原。
Faheem Mitha 2014年

我什至没有安装它,而是重新安装了Debian,然后从命令行输入“ python”,我在python3 shell中。
Frozenjim 2015年

Answers:


16

你可能正在寻找virtualenvpyenv或其他一些非全系统的方法来安装Python。使用APT(高级打包工具)和的方法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

(不再维护pythonbrew)。


好的,我以root用户身份安装了pip和virtualenv,那么如何使用新的Python版本创建虚拟环境?据我所知,我们需要先安装新版本吧?
Pierre

1
@Peter我认为第一步是pyenv install 2.7.6。您可以使用pyenv install -l
Braiam

27

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

apt-get install build-essential

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

libbz2-dev
libsqlite3-dev
libreadline-dev
zlib1g-dev
libncurses5-dev
libssl-dev
libgdbm-dev

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

tar zxf Python-2.7.6.tgz

然后我们cd进入提取的目录:

cd Python-2.7.6

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

./configure --prefix=/opt/python
make
make install # <- in the docs but don't execute: use checkinstall

我选择将其安装/opt/python在之前创建的目录下,也使用了checkinstall软件包来创建.deb文件,以便以后可以轻松卸载,因此我们首先安装它:

apt-get install checkinstall

并将最后一行替换为make install

checkinstall

现在我在中安装了新的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

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

PATH="$PATH:/opt/python/bin"

并运行:

source ~/.profile

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


现在,您是否会偶然知道如何配置新的python以查看通过apt-get安装的模块?
elsurudo

不幸的是,对于Python 2.6,从源代码进行编译在Debian 8(Jessie)上无法正常工作,但是我发现,至少对于Raspberry Pi,我能够使用packages.debian.org中的旧软件包。假设已经存在构建必需项,则该命令类似于libdb,python2.6-minimal,python2.6,libpython2.6,python2-6-dev,但dpkg -i会告诉您需要什么。
查理·克拉克

1
@elsurudo确实没有意义,因为新版本可能不支持这些模块。如果您想完全控制Python(如从源代码编译时所做的一样),那么您也将希望单独安装模块。
tripleee

-1

您可以使用:

aptitude install python3.5  

或者,如果尚未安装aptitude,则可以使用以下方法安装:

apt-get install aptitude
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.