【问题标题】:Python libraries needed to interact withPyKML. Need some guidance with libxml2 and libxslt需要与 PyKML 交互的 Python 库。需要一些关于 libxml2 和 libxslt 的指导
【发布时间】:2012-04-18 18:26:42
【问题描述】:

我正在自学 Python,感谢我在遇到困难时得到的大力帮助,我对自己的进步感到满意。

我正在从事一个项目,该项目从多个 API 检索一堆记录、数据挖掘地址、提取地理位置(使用 GeoPy),现在我想在 Google 地球中将它们可视化。

我想做的完美库是 PyKML。它看起来很简单,特别是因为我想在 PyKML 文档中重新创建“circle around locations”导览,使我能够以编程方式创建 KML 文档。

我遇到的问题是 PyKML 依赖于 lxml,而 lxml 依赖于 libxml2 和 libxslt,我无法安装它们中的任何一个。

我不确定这些库的用途,我什至不知道我是否可以在我的机器上运行(我使用的是 Windows)。 libxml2 和 libxslt 的文档让我特别困惑,因为其中提到了 C 语言和编译器。

谁能告诉我“安装”和测试 lxml、libxml2 和 libxslt 以与 Python 一起使用的正确方法是什么?有没有人知道其他允许以编程方式创建 KML 文档的 Python 库,最好是不依赖其他库的?

提前感谢您的帮助。干杯


已解决

我通过卸载 64 位版本的 Python for Windows 并安装 32 位版本解决了这个问题。

另外,我从这里为 Python 2.6 安装了 lxml 2.3 的 32 位二进制版本:

http://pypi.python.org/pypi/lxml/2.3

我认为问题在于 Python 2.6 64 的某些组件与 lxml 工作所需的所有库之间的不兼容。

【问题讨论】:

  • 你需要说明你运行的是什么平台。你试过easy_install PyKML吗?

标签: python lxml libxml2 libxslt pykml


【解决方案1】:

但是,所有这些库都应该使用easy_install 安装。

PyKML 文档说

鉴于此,安装 pyKML 的第一步是让 lxml 在您的系统上运行。参考lxml网站instructions on how to install lxml

如果您使用的是类 unix 系统(包括 OS X),可能已经安装了 libxml2 和 libxslt,或者可以通过本机包管理器轻松安装。

对于 windows,lxml 提供了带有 libxml2 和 libxslt 静态编译的预构建鸡蛋(如 lxml install documentation 中所述),因此您不需要单独安装它们.来自 lxml 文档:

获取 easy_install 工具并以超级用户(或管理员)身份运行以下命令:

easy_install --allow-hosts=lxml.de,*.python.org lxml

在 MS Windows 上,以上将安装我们提供的二进制构建。如果还没有最新版本的二进制构建,请在 PyPI 中搜索包含它们的最新版本并将该版本传递给 easy_install。

看来最新的版本是2.3,所以只有上面的命令不起作用,试试:

easy_install --allow-hosts=lxml.de,*.python.org lxml==2.3

从您easy_install PyKML 时收到的错误消息来看,easy_install 似乎没有找到您安装的 lxml 包,并且正在尝试为 PyKML 安装它。您可以尝试使用easy_install --no-deps pykml 强制解决问题,这将忽略依赖项并仅安装 PyKML(这是一个简单的仅 python 库)。然后测试import pykml 是否有效,如果有效,您就完成了。

【讨论】:

  • 弗朗西斯,谢谢您的回复。我使用的是 Windows,我在原帖中提到过。无论如何,我仍然无法让 lxml 工作(我无法安装或测试其他两个库)。
  • Windows 的 lxml 安装文档明确指出,它通过 easy_install 提供了预编译的二进制文件,其中编译了 libxml2 和 libxslt,因此您不需要单独安装它们。答案已更新为 Windows 的明确说明,但您无法从 lxml 安装文档中学到任何东西。
  • 谢谢。从 python 中输入“Import lxml”似乎没问题,“lxml??”在 ipython 返回一个简短的描述等。现在,当执行“easy_install pykml”时,它会搜索库,找到匹配项,下载,开始构建 lxml 版本 2.3.4 并说“Building without Cython”错误:'xslt-config ' 无法识别为内部或外部命令、可运行程序或批处理文件。 **确保已安装 libxml2 和 libxslt 的开发包。然后是几个警告。由于我使用的是 Windows 7 64,我怀疑那里有问题。如何在此处发布警告的 JPG 格式?
  • 发布文字,而不是jpg!编辑您的原始问题。这里的问题是 PyKML 的安装程序想要使用命令行实用程序xslt-config,而您没有通过 lxml 获得该实用程序。老实说,我想不出为什么 PyKML 需要它。
【解决方案2】:

我通过卸载 64 位版本的 Python for Windows 并安装 32 位版本解决了这个问题。

另外,我从这里为 Python 2.6 安装了 lxml 2.3 的 32 位二进制版本:

http://pypi.python.org/pypi/lxml/2.3

我认为问题在于 Python 2.6 64 的某些组件与 lxml 工作所需的所有库之间的不兼容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多