我想在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.
任何人都可以告诉我问题是什么? 谢谢你的帮助!!
答案 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升级到下一个版本后,问题自动得到解决。