python2.7将来可用于10.04吗?


27

由于Ubuntu 10.04是LTS发行版,它将支持python 2.7作为默认软件包维护者版本,还是将来至少具有python2.7软件包?

由于它将是python 2.x的最后一个主要发行版,并且打算保留很长时间,因此我决定使用它。我从源代码编译了它(当然是在构建了部门之后),但是有时我会发现一些小问题。

将我编译的python 2.7定义为默认值是否安全,因为有些分发应用程序可以在python上运行。

Answers:


16

不,在Lucid中将 2.7定义为默认的Python解释器并不安全。而且我认为将来不会。

  • 一个版本中没有任何软件的主要版本升级。

    因此python2.7不会取代2.6作为默认解释器。这种升级仅在版本之间进行,尤其是在LTS内,只有所谓的稳定版本升级,即错误修正和与安全相关的升级。

但是,使用python2.7绝对安全,将您的解释器定义为,#!/usr/bin/python2.7并让用户make altinstall在python2.6上与python2.6一起使用


41

不能升级到Maverick的VPS遇到了同样的问题(即使新的LTS图像也不能总是按时提供)。Marius的回答为我入门提供了窍门,但应将其扩展为:

将PPA添加到您的来源

如果您遇到我的情况,那么简单的跑步建议add-apt-repository将对您不起作用。因此,让我们以老式的方式进行操作:

  1. 打开文件/etc/apt/sources.list(您需要root特权;如果您在外壳上,则可能意味着运行sudo vim /etc/apt/sources.list)。

  2. 一直到文件底部(如果使用vim,请按切换到插入模式i),并添加以下几行:

    deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main 
    deb-src http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main 
  3. 保存并退出(vim输入:wq:),然后返回到shell。

  4. 输入以下内容(您可以在PPA上找到正确的密钥;这是“技术细节”中斜杠之后的部分-确保您输入正确的密钥):

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DB82666C
  5. 现在输入以下内容以更新您的来源列表:

    sudo apt-get update

安装和设置Python 2.7

  1. 打开服务器上的外壳,然后输入以下内容:

    sudo apt-get install python2.7 python2.7-dev
  2. 要开始easy_install工作,请获取distributebootscrap脚本:

    curl -O http://python-distribute.org/distribute_setup.py
    python2.7 distribute_setup.py
  3. 最后,如果您打算做任何严肃的事情,则需要pipvirtualenv努力:

    easy_install-2.7 pip
    pip-2.7 install virtualenv

设置虚拟环境

  1. 为您的新环境创建文件夹并打开它:

    mkdir my_env && cd my_env
  2. 创建虚拟环境本身(点表示当前目录是环境的位置,如果您跳过上一步,则将其替换为正确的路径):

    virtualenv --no-site-packages --python=python2.7 .
  3. 激活环境。您会注意到shell提示更改以反映活动环境:

    source bin/activate
  4. 现在,您在此Shell中执行的任何操作都将使用虚拟环境bin文件夹和该环境的Python包中的脚本。请记住,该选项--no-site-packages意味着您从最小的一组软件包(包括pip)开始,因此您需要安装所有需要的软件包。

  5. 完成后,停用环境(这是活动环境可以识别的命令):

    deactivate

您还可以通过将-E选项传递到来将软件包安装到虚拟环境中pip(例如pip install some-package -E /path/to/virtual/environmentsome-package在给定路径上安装到虚拟环境中)。请记住,您将具有pip与安装的不同Python版本相对应的几个不同版本。

这是一个好主意,用pip-2.7,如果你想安装包的Python 2.7的虚拟环境(外界工作时--python=python2.7,我们传递给选择virtualenv手段的虚拟环境将使用它提供的工具了Python 2.7的版本,所以你不必担心)。


1
就我而言,我已经为2.6安装了pip,并且不得不easy_install-2.7 -U pip强制安装2.7版本。但是,谢谢,这是一个很大的帮助!
Gabe Moothart 2012年

2
对于“安装和设置Python 2.7”下的步骤2,我必须做wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - | sudo python2.7。然后让点子 sudo python2.7 -m easy_install pip之后sudo python2.7 -m easy_install --upgrade pip。必须使用--no-check-certificate选项,以克服wget关于SSL证书的投诉。(见pypi.python.org/pypi/setuptools#unix-wget
zlovelady


2

这解决了我遇到的各种问题https://stackoverflow.com/questions/7561221/undefined-symbol-pyobject-nextnotimplemented-error-when-loading-psycopg2-modu

现在libpython2.7.so.1.0链接到我的python2.7等,看起来似乎更快乐。

我需要弄清楚的最后一部分是mod_wsgi安装。如果您只是发出:

$ apt-get install libapache2-mod-wsgi

然后这将被编译为Python2.6 :(

$ ldd /usr/lib/apache2/modules/mod_wsgi.so

libpython2.6.so.1.0 => /usr/lib/libpython2.6.so.1.0 (0x00178000)

因此,我在这里遵循了Gork-Zope提供的说明。

我终于有一个工作服务器。谢谢。


1

我不这么认为,因为它将需要更改与10.04版本关联的许多程序和库。实际上,Ubuntu中的许多工作都是使用特定的python版本完成的。将其更改为python会更改很多系统文件。

对于10.10,仅通过安装python2.7(您也可以安装3和3.1)就可以从synaptic / aptitude中获得它,但是对于10.04,则没有任何工作可用于10.04。

10.10默认使用python 2.6。很抱歉,如果答案不是肯定的,只是想让您对更改有所了解。

编辑-将Python 2.7默认更改为Python 2.6,因为已从下面的注释中对其进行了两次检查。谢谢。


我刚刚在虚拟框中签出了10.10,默认情况下它具有python 2.6.6,尽管有2.7个可用于特立独行的软件包。我认为它的11.04具有默认值。我通常会继续更新和更改发行版,但出于长期支持和我的自定义考虑,我一直考虑使用10.04。
crodjer 2010年

是的,几天以来,11.04的默认违约率为2.7
Stefano Palazzo
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.