【问题标题】:Installing lxml for Python 3.4 on Windows x 86 (32 bit) with Visual Studio C++ 2010 Express使用 Visual Studio C++ 2010 Express 在 Windows x 86(32 位)上为 Python 3.4 安装 lxml
【发布时间】:2014-07-19 14:46:19
【问题描述】:

相关

相关问题:

相关答案:

相关cmets:

  • Building lxml for Python 2.7 on Windows
  • "@ziyuang 这意味着您使用的是使用 Microsoft Visual Studio 2010 的 Python 3.3。如果是这样,那么答案是肯定的,您应该安装这个版本。"

事实

  • Windows x86(32 位)
  • 同时安装了 Visual Studio C++ 2008 (from here) Express 和 Visual Studio C++ 2010 (from here)
  • Python 3.4.1(显然编译使用比 Visual Studio 2008 更新的版本
  • 我使用 pip(或 pip3.4.exe;Python 3.4 内置)pip install lxml
  • distutils 使用 Visual Studio C++ 2010 Express 编译

我的错误的最后几行,由 pip 记录:

cl : 命令行警告 D9025 : 用 '/w' 覆盖 '/W3'

lxml.etree.c

C:\Users\NATHAN~1\AppData\Local\Temp\pip_build_nathanielanderson\lxml\src\lxml\includes\etree_defs.h(9) :致命错误 C1083:无法打开包含文件:'libxml/xmlversion.h': 没有这样的文件或目录

C:\Python34\lib\distutils\dist.py:260:用户警告:未知 分发选项:'bugtrack_url'

warnings.warn(msg)

错误:命令 'C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\cl.exe' 失败,退出状态为 2

所以我无法从 .egg 或通过编译安装...

其他选项

我也找不到此版本 Python 的 Windows 安装程序(exe 或 msi 或其他)

2019 年 10 月 16 日更新

正如评论者所说,可执行链接不再可用

看起来 Chris确实在这里提供了一个直接的 exe:

http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml

谢谢,克里斯!任何想法为什么我不能使用 pip 编译?

【问题讨论】:

  • “看起来 Chris 确实在这里提供了一个直接的 exe:(链接)”在哪里?我没有看到任何 LXML 的 exe,只有轮文件。它被删除了吗?
  • 嗨@Calydon,你是对的......我不知道该建议什么。旧的可执行链接不起作用。也许从whl 文件安装很简单,可以代替exe 完成。否则try this site(感谢接受的答案)
  • 最后我能够让 3.8 whl 工作(正如您对 Python3.8 所期望的那样)。我第一次看的时候不确定它是否在那里。这些类型的技术挂断是没有经验的程序员的祸根。 Python 应该“正常工作”。

标签: python c++ visual-studio-2010 lxml


【解决方案1】:

简短的版本是:在构建 lxml 之前,您需要拥有 C 库 libxml2(以及 libxslt2)。


正如lxml installation docs 所说:

除非您使用的是静态二进制分发版(例如,来自 Windows 二进制安装程序),否则您需要安装 libxml2libxslt,尤其是:

  • libxml2 2.6.21 或更高版本。可以在这里找到:http://xmlsoft.org/downloads.html

    • 我们建议使用 `libxml2 2.7.8 或更高版本。
    • 如果要使用 XPath,请不要使用libxml2 2.6.27。
    • 如果您想使用提要解析器接口,尤其是从 unicode 字符串解析时,请不要使用 libxml2 2.7.4 到 2.7.6。
  • libxslt 1.1.15 或更高版本。可以在这里找到:http://xmlsoft.org/XSLT/downloads.html

    • 我们推荐libxslt 1.1.26 或更高版本。

build from source docs 同样以:

要从源代码构建 lxml,您需要正确安装 libxml2 和 libxslt,包括头文件。


Windows(与大多数其他平台不同)不附带这些库。您没有在“事实”中提及任何关于拥有它们的内容。


你显示的错误信息是:

C:\Users\NATHAN~1\AppData\Local\Temp\pip_build_nathanielanderson\lxml\src\lxml\includes\etree_defs.h(9) : 
fatal error C1083: Cannot open include file: 'libxml/xmlversion.h': 
No such file or directory

它找不到的 'libxml/xmlversion.h'libxml2 的一部分。


同样值得注意的是,相同的安装文档明确表示:

考虑使用来自 PyPI 的二进制文件或 Christoph Gohlke 慷慨提供的非官方 Windows 二进制文件。

因此,您认为 Christoph Gohlke 没有为 lxml 提供二进制文件这一事实意味着您没有找到这些文档。


因此,您可能确实安装了libxml2,但不是以lxml2 的安装脚本可以找到的方式。但是所有的证据都表明,你没有它的可能性要大得多。

【讨论】:

    【解决方案2】:

    我也遇到了这个问题,但上面提供的解决方法也不适用于我。

    这是我的系统配置:

    • Win7 64位
    • python3.3
    • 视觉工作室 2013

    我尝试使用相关问题中第一个链接中的方法,但失败了。这个方法是创建一个系统变量供vs2010使用,这个变量其实是我在visual studio 2013中的原始配置复制过来的。

    但是,命令行提示错误“libxml/xmlversion.h”没有吸文件或目录

    然后我在互联网上进一步搜索并找到了一种适用于我的情况的方法。

    1. 下载预编译的 lxml 插件

      预编译的 lxml 3.5https://pypi.python.org/pypi/lxml/3.3.5#downloads

      如果您的系统是 64 位,那么您可以在这里获得 x64 的非官方版本:http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml(这是我使用的)

    2. 在命令行中使用命令安装easy_install lxml-3.2.1.win32-py3.3.‌exe

      参考https://pytools.codeplex.com/workitem/1520

    【讨论】:

    • 是的,根据我的问题,我需要 Gohlke。听起来您也需要 Gohlke,根据您的规格:64 位。你需要高尔克吗?你会推荐哪个版本的 lxml? pypi.python.org/pypi/lxml 列举了一些;为什么你的回答提到 3.3.5?最后,为什么在可执行文件上使用easy_install,你不能只打开可执行文件吗?谢谢。
    • 1.是的,正如我所说,我使用 lxml 3.4.1 Gohlke 版本,这是一个非官方版本 2。实际上,我是一个刚开始学习这个插件的新手。抱歉 3. 版本 3.3.5 是我最初寻找的,但没有任何适用于 python 3.3 的组件 4. 我认为你可以,我在阅读你的问题后尝试执行它......它可以检测到在prepossessing公告中成功将python3.3安装在我的系统中。但我并没有真正进行安装过程,因为我已经安装了它。希望这会有所帮助!
    • 太棒了!从lfd.uci.edu/~gohlke/pythonlibs/#lxml 下载预编译的 lxml 对我有用。
    【解决方案3】:

    如果您使用的是 python 3.4,这是下载链接:

    Download Here

    如果您有任何其他配置,请根据您的需要找到它HERE。 ;-)

    【讨论】:

    • 从第二个链接在 Windows 7 上尝试了 lxml-3.5.0-cp34-none-win32.whl。像魅力一样工作。
    • 使用上面的 Gohlke 网站链接,我无法安装 win32 版本,但成功安装了 win_amd64 版本(在基于 Intel 的 64 位 Windows 系统上)。将whl文件下载到c:\Python34\Scripts,然后运行c:\Python34\Scripts>pip install "lxml-3.5.0-cp34-none-win_amd64.whl" 结果:解包c:\python34\scripts\lxml-3.5.0-cp34-none-win_amd64.whl 安装收集的包:lxml 安装成功 lxml 清理...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多