在lxml中使用etree时出错

时间:2013-04-30 09:04:03

标签: python windows python-2.7 lxml xml.etree

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

import xml.etree.ElementTree as ET

由于这个库的使用有限,我必须在google上进行长时间的搜索后使用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.

任何人都可以告诉我问题是什么? 谢谢你的帮助!!

6 个答案:

答案 0 :(得分:13)

我知道说这个晚了......但总有一天可能会帮助别人..

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

window.addEventListener('load', function () {
            document.getElementById('--IdOfImage--').addEventListener('click', saveClickData);
        });
        function saveClickData() {
            var xhr = new XMLHttpRequest();
            var image = this;
            var xVal = event.offsetX;
            var yVal = event.offsetY;
            var url = '/path/to/captureClickInfo.php?x=' + xVal + '&y=' + yVal;
            xhr.onreadystatechange = function () {
                if (xhr.readyState==4) {
                    if (xhr.status==200) {
                        // Should probably use this code to refresh image.
                        image.src = '/path/to/image.php'; //Not sure if this works if src doesn't change...
                    }
                    else {
                        // An error occured if reaches here.
                    }
                }
            }
            xhr.open('GET', url);
            xhr.setRequestHeader('Content-type', 'your/data-format');
            xhr.send();
        }

答案 1 :(得分:9)

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

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

LXML-3.4.1.win-AMD64的py2.7.exe

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

答案 2 :(得分: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/

答案 3 :(得分:1)

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

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

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

答案 4 :(得分:1)

我遇到了同样的问题。 Win32部分起初很混乱,因为我运行的是64位系统。解决方案,也许是因为实际的python版本使用了32位组件,只是卸载旧版本的lxml并安装32位版本,这里: https://pypi.python.org/pypi/lxml/3.4.1#downloads

答案 5 :(得分:0)

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