通过 pip 安装 lxml 时出错:需要 Microsoft Visual C++ 14.0

Posted

技术标签:

【中文标题】通过 pip 安装 lxml 时出错:需要 Microsoft Visual C++ 14.0【英文标题】:Error while installing lxml through pip: Microsoft Visual C++ 14.0 is required 【发布时间】:2016-12-21 07:55:55 【问题描述】:

我在 Windows 10 机器上,最近从 python 2.7 迁移到 3.5。尝试通过 pip 安装 lxml 时,它会停止并抛出此错误消息 -

构建“lxml.etree”扩展 错误:需要 Microsoft Visual C++ 14.0。使用“Microsoft Visual C++ Build Tools”获取它:http://landinghub.visualstudio.com/visual-cpp-build-tools

我安装了 VS 2015 的工作副本。当我尝试通过该链接安装可视化 cpp 工具时,它表示机器上已经安装了 Microsoft Visual Studio 2015。我还尝试安装 64 位和 32 位版本的 Visual Studio C++ 2015 Redistributables,但他们都说已经安装了另一个版本的产品。 在命令提示符下键入 set 包括这个 -

VS140COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\

这意味着路径已设置。 这可能是我可以在 SO 上找到的唯一资源,但答案建议从 3.5 回滚到 Python 3.4.3。有没有人解决过此类问题? Microsoft Visual C++ 14.0 is required (Unable to find vcvarsall.bat) 编辑:我设法使用预编译的二进制文件安装它(感谢 Paul),但我仍然想知道是什么原因造成的。

【问题讨论】:

获取 lxml 的预编译二进制文件。 lfd.uci.edu/~gohlke/pythonlibs/#lxml 但这只是一种解决方法,对吧?即使我已经安装了所有东西并设置了路径,我也想知道为什么会出现错误。但是,我会安装二进制文件,以防我找不到其他任何东西,谢谢! 错误:需要 Microsoft Visual C++ 14.0。使用“Microsoft Visual C++ 构建工具”获取它:landinghub.visualstudio.com/visual-cpp-build-tools 在安装 mysqlclient 时我也面临完全相同的问题。任何解决方法或适当的解决方案都可以。 也许这可以帮助你***.com/questions/29846087/… 或者这个:***.com/questions/44951456/… 【参考方案1】:

作为对上述@davidsheldon 答案的更新,如果您想使用 Visual Studio Build Tools 2017 而不是 2015,它将起作用。

我发现单独安装构建工具的默认安装是不够的,但是,我添加了 `VC++ 2015.3 ... toolset for desktop (x86,x64) 然后 python 很高兴:

【讨论】:

感谢截图,非常有帮助!在 Visual Studio 2019 Build Tools 中,该包名为“MSVC v140 - VS 2015 C++ build tools (v14.00)”【参考方案2】:

我和你有同样的问题!我找到了一种不需要安装vs2015的方法,也许,你只是没有安装twis​​ted。http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted.download twisted --version(Twisted‑17.5.0‑cp36‑cp36m‑win_amd64.whl)(可能是win_amd32.whl if 64didn 't work),然后运行:pip PATH + filename

pip install C:\Users\CR\Downloads\Twisted-17.5.0-cp36-cp36m-win_amd64.whl

pip install Scrapy

我刚刚安装成功!祝你好运!

我安装 scrapy 的步骤: 1.pip安装*** 2.pip安装lxml 3.pip安装pyOpenSSL 4.pip install Twisted (fault->do like above) 5.安装pywin32格式:https://sourceforge.net/projects/pywin32/files/pywin32/Build%20220/ 6.pip Scrapy(成功)

【讨论】:

【参考方案3】:

第一:

pip install wheel

第二:去http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml 并下载合适的***。

pip install 您下载的文件 (.whl)。

【讨论】:

【参考方案4】:

我找到了另一个解决方案来解决这个问题: 因为我用的是anaconda python,所以我用这段代码:

conda install -c conda-forge scrapy

【讨论】:

【参考方案5】:

您是否检查过在安装 Visual Studio 时是否安装了 C++ 编译器?这似乎是一个愚蠢的问题,但这是我犯的错误。通过进入 Visual Studio 的设置进行检查(程序和功能:修改“Visual Studio 2015”),然后在 Programming Languages->VC++ 下,确保已勾选。

【讨论】:

太棒了,做到了。谢谢,+1。 我想我一定已经安装了 C++,并在放弃尝试之前经历了一些其他的解决方案。意识到当我最初安装 Visual Studio 时,它是用于 C# 和 android 模拟器的。我将 C++ 关闭以节省磁盘空间。所以我给别人的 0.02 美元并不是为了不予理会。​​span> 【参考方案6】:

遇到同样的问题,注意到我在 64 位机器上安装了 32 位版本。我所做的只是卸载错误的版本并安装正确的版本,它运行良好。

【讨论】:

【参考方案7】:
    运行pip install wheel 从http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml下载lxml,如果你的python版本是3.5,请下载lxml-3.6.4-cp35-cp35m-win32.whl。 运行python -m pip install lxml-3.6.4-cp35-cp35m-win32.whl

【讨论】:

以上是关于通过 pip 安装 lxml 时出错:需要 Microsoft Visual C++ 14.0的主要内容,如果未能解决你的问题,请参考以下文章

Linux或者Windows上安装lxml失败解决方法

python pip安装lxml失败(转)

win7 64 安装lxml

通过 pip 安装 gnureadline 时出错

在 lxml 中使用 etree 时出错

python3.5 安装lxml