10

我想在 python 中使用 xpath 。我试过了

import xml.etree.ElementTree as ET

由于这个库的使用有限,我不得不在谷歌上进行长时间的搜索后使用 lxml。我在安装过程中遇到了几个问题,最后我安装了 lxml 但是当我使用

from lxml import etree

它会抛出如下错误。你能告诉我解决这个问题的方法吗!!!

Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
from lxml import etree
ImportError: DLL load failed: %1 is not a valid Win32 application.

谁能告诉我问题是什么?谢谢帮助!!

4

6 回答 6

17

我知道这样说已经晚了......但有一天可能会帮助某人......

我在这里使用以下代码来解决完全相同的问题

python -m pip uninstall lxml
python -m pip install lxml==3.6.0
于 2016-12-22T18:19:57.360 回答
9

我通过在此处下载 64 位版本的 lxml 解决了这个问题:

https://pypi.python.org/pypi/lxml/3.4.1

lxml-3.4.1.win-amd64-py2.7.exe

这是唯一一个可以解决win32错误的方法。在执行此操作之前,您可能希望销毁旧版本的 lxml。

于 2014-11-28T11:10:41.137 回答
1

既然你提到你必须与 lxml 进行斗争才能安装它,所以很难说这个错误可能在那个过程中出现在哪里。

您是将 lxml 安装到 Python 的默认安装还是其他地方?如果您要安装到默认安装,那么https://pypi.python.org/pypi/lxml/3.2.0中的 .exe 选项之一可能是您最好的选择。在某些情况下,我也不得不与 lxml 作斗争,但那些 .exe 选项是我找到的最简单的方法。

如果您尝试将 lxml 安装到其他 Python 安装中,我建议您使用 .egg 文件和安装工具。可悲的是,我可以为 lxml 找到的最新 .egg 文件是 2.3 的,但您可以在此处获取它们https://botbot.me/freenode/kivy/

于 2013-05-01T02:49:53.487 回答
1

我遇到了同样的问题。本质上,我的操作系统是 64 位的,而我的 python 也是 64 位的。但是我安装的工具和站点包都是 32 位的,除了 64 位的 Ixml。所以,我从下面的链接安装了 Ixml 32 位版本,它对我来说很好用。

https://pypi.python.org/pypi/lxml/

我相信系统正在寻找 Ixml 的 32 位实现,但它找到了 64 位。我希望这能解决问题。

于 2014-04-12T21:40:00.377 回答
1

我有同样的问题。Win32 部分起初令人困惑,因为我运行的是 64 位系统。解决方案,可能是因为实际的python版本使用32位组件,只是卸载旧版本的lxml并安装32位版本,这里: https://pypi.python.org/pypi/lxml/3.4。 1#下载

于 2016-04-13T18:22:45.733 回答
0

只是添加这个以防万一处于类似情况的人受益。尽管我的 Python 和 Scrapy 所需的库是 32 位安装的,但我仍然遇到了这个问题。在我将 Python 升级到下一个版本后,问题自动得到解决。

于 2017-06-27T10:17:43.093 回答