我已经安装了Python 3.5,并且正在运行

pip install mysql-python

它给出了如下错误

错误:Microsoft Visual c++ 14.0是必需的(无法找到vcvarsall.bat)

我已经添加了以下行到我的路径

C:\Program Files\Python 3.5\Scripts\;
C:\Program Files\Python 3.5\;

C:\Windows\System32;
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC;
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC

我的电脑上安装了64位的Windows 7。

什么解决方案可以减少这个错误,并通过pip正确安装模块。


当前回答

使用此链接下载并安装Visual c++ 2015 Build Tools。它将自动下载visualcppbuildtools_full.exe并安装Visual c++ 14.0,而无需实际安装Visual Studio。

安装完成后,重试pip install,您将不会再次得到错误。

我已经在以下平台和版本上进行了测试:

Python 3.6 on Windows 7 64-bit
Python 3.8 on Windows 10 64-bit

其他回答

在为Django项目安装mysqlclient时,我也遇到了同样的问题。

在我的例子中,是系统架构不匹配导致了这个问题。我的系统上有Windows 7 64位版本。但是,我错误地安装了Python 3.7.2 32位版本。

所以,我重新安装Python解释器(64位)并运行命令

pip install mysqlclient

我希望这也适用于其他Python包。

我在安装pymssql时遇到了类似的情况。

pip试图构建这个包,因为Python 3.6和Windows没有正式的轮子。

我从非官方的Windows二进制for Python扩展包下载了一个非官方的轮子。

特别针对您的情况:MySQL-python

首先,你需要从https://visualstudio.microsoft.com/downloads#other下载visualstudio构建工具 重命名文件vs_buildtools.exe(不是必需的,但您必须修改下面的脚本)

start-process -wait -filepath vs_buildtools.exe -ArgumentList '--quiet --wait --norestart --nocache --installPath C:\BuildTools `
  --add Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64 `
  --add Microsoft.VisualStudio.Component.Windows10SDK.19041 `
  --add Microsoft.VisualStudio.Component.Windows10SDK `
  --add Microsoft.VisualStudio.Component.VC.CoreIde `
  --add Microsoft.VisualStudio.Component.VC.CMake.Project `
  --add Microsoft.VisualStudio.Component.VC.14.29.16.11.CLI.Support `
  --add Microsoft.VisualStudio.ComponentGroup.UWP.VC.v142'

我在这里为windows docker用户创建了一个单独的问题和答案,Microsoft Visual c++ 14.0是必需的,在windows docker上安装pip包

使用这个可以节省时间

pip install pipwin 
pipwin install yourLibrary

pipwin类似于pip,但它安装由Christoph Gohlke提供的预编译的Windows二进制文件。节省了你大量的时间搜索和下载。

在这种情况下,pipwin会解决问题

Error: Microsoft Visual C++ 14.0 is required (Unable to find vcvarsall.bat)

阅读更多关于pipwin的信息,这里他们提到了Microsoft Visual c++

二进制安装它的简单方法!

使用pip的二进制选项。例如,对于mysqlclient:

pip install --only-binary :all: mysqlclient

许多包不会为每个单独的版本创建一个构建,这迫使您的pip从源代码构建。如果您乐于使用最新的预编译二进制版本,请使用——only-binary:all:允许pip使用较旧的二进制版本。