【问题标题】:How to install modules for Python 2.7 on Ubuntu 10.10?如何在 Ubuntu 10.10 上安装 Python 2.7 模块?
【发布时间】:2011-02-22 18:44:09
【问题描述】:

在 Ubuntu 10.10 上,我无法将 lxml 安装到 python 2.7。以下是我采取的步骤。

sudo su -
apt-get install python2.7
apt-get install python-lxml

注意在运行python-lxml包的安装时,出现如下:

INFO: using unknown version '/usr/bin/python2.7' (debian_defaults not up-to-date?)"

在python2.6(Ubuntu标配的版本)中导入模块有效。但是,在python2.7下导入模块却没有。那么如何将 Python 模块安装到非默认 Python 安装中呢?

【问题讨论】:

标签: lxml ubuntu-10.10 python-2.7


【解决方案1】:

尝试安装libxml2, libxml2-dev, libxslt, libxslt-dev, python-dev。这些是头文件。然后尝试再次安装lxml

【讨论】:

  • 使用 12.04 的程序是:: libxml2 libxml2-dev libxslt1.1 libxslt1-dev python-dev
  • 很遗憾这个(和 Alvin 的评论)是正确的答案,而且它在底部。
【解决方案2】:

在 Ubuntu 10.10 上,从存储库安装的 python 包被安装到 /usr/lib/python2.6/dist-packages 所以一种选择是将此路径添加到您的 $PYTHONPATH 环境变量中,以便 python2.7 将查找库的python2.6目录。

我在 Ubuntu 10.10 上所做的是添加

export PYTHONPATH="$PYTHONPATH:/usr/lib/python2.6/dist-packages"

到我的 .bashrc 文件,也到我的 .gnomerc 文件。这将为从 shell 或 gnome 桌面启动的 python 实例设置 $PYTHONPATH。然后,您应该能够从 python2.7 中的 Ubuntu 存储库中导入已安装的 python 库。

.bashrc 和 .gnomerc 都位于您的主目录中;如果 .gnomerc 尚不存在,您可能必须创建它。还有一个警告:我的 .gnomerc 中有一个语法错误,导致 gnome 桌面无法加载,我无法登录。我必须使用故障恢复控制台修复此语法错误,然后才能再次登录。

这对我来说似乎有点老套,所以我有兴趣听到更好的解决方案。

【讨论】:

    【解决方案3】:

    另一种解决方案可能是使用以下代码:

    try:
      from lxml import etree
    except ImportError:
      try:
        # Python 2.5
        import xml.etree.cElementTree as etree
      except ImportError:
        try:
          # Python 2.5
          import xml.etree.ElementTree as etree
        except ImportError:
          try:
            # normal cElementTree install
            import cElementTree as etree
          except ImportError:
            try:
              # normal ElementTree install
              import elementtree.ElementTree as etree
            except ImportError:
              print("Failed to import ElementTree from any known place")
    

    [Source]

    如果 lxml 可用,这将导入,否则将导入原始 ElementTree。

    我将此代码用于我在 Google App Engine 上的应用程序(使用 Python 2.7):在服务器上它将使用 lxml,在我的机器上它将使用 ElementTree。

    【讨论】:

    • 因此,“我如何安装 X”的公认答案是“这里有一些用于导入 X 的代码”。安装和导入是同一个东西吗?
    • @Buttons840 好吧,问题更多的是“我如何让 lxml 在 Ubuntu 上工作,以便在 Python 2.7 中使用”,为此我展示了一种使用 lxml(如果可用)的方法,或者 (c)ElementTree如果不是。由于 lxml 和 ElementTree 具有兼容的 API,因此此代码允许您支持仅安装一个的环境。你是对的,虽然它回避了这个问题,而不是展示如何为 Python 2.7 安装 lxml,它只是使用 ElementTree。
    【解决方案4】:

    我有一个最简单的技巧只需在搜索框中打开突触包管理器类型“python-lxml”,它将显示所有依赖项和可用包,选择要安装的包并点击应用。

    【讨论】:

      猜你喜欢
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-02
      • 2011-05-02
      • 1970-01-01
      相关资源
      最近更新 更多