我已经安装了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正确安装模块。


当前回答

再加上乔杜里的回答:

在我的情况下,我得到了另一个关于lxml的错误如下:

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\readme.txt -> build\lib.win-amd64-3.7\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
running build_ext
building 'lxml.etree' extension
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

我必须安装lxml - 4.2.3 - cp37 - cp37m - win_amd64。与Sushant Chaudhary的回答一样,成功完成Scrapy的安装。

下载lxml 4.2.3——cp37 cp37m——win_amd64。whl来自Lxml 把它放在Python安装的文件夹里 使用PIP Install <file-name>安装它

现在您可以运行pip install scrapy。

其他回答

只要去https://www.lfd.uci.edu/~gohlke/pythonlibs/找到适合你的包(whl文件)。下载它。在cmd中进入下载文件夹,或者在文件夹的地址栏上输入'cmd'。执行如下命令:

pip install mysqlclient-1.4.6-cp38-cp38-win32.whl

(请正确输入文件名。我只是举了一个例子)。无需安装6GB大小的build toll cpp,您的问题将得到解决。

要扩展ocean800、davidsheldon和user3661384的答案:

你现在应该不再使用Visual Studio Tools 2015,因为有一个更新的版本可用。正如Python文档所指出的,您应该使用Visual Studio Tools 2017。

Visual c++ Build Tools 2015由微软升级为Visual Studio Build Tools 2017。

从这里下载。

您还需要setuptools。如果你没有安装工具,运行:

pip install setuptools

或者如果你已经有了,一定要升级它。

pip install setuptools --upgrade

对于上面的Python文档链接,您将看到setuptools版本必须至少为34.4.0才能使Visual Studio工具工作。

我只是在使用最新的Python 3.6时遇到了同样的问题。Windows OS 10家庭版和64位操作系统。

解决方法:

通过控制面板卸载任何版本的Visual Studio 安装Visual Studio 2015并选择将安装的默认选项 Visual c++ 14.0 您可以使用PyCharm安装Scrapy:菜单项目→项目解释器→+(安装Scrapy) 通过导入检查REPL和PyCharm中的Scrapy。您应该不会看到任何错误。

我也有同样的问题。我需要一个64位版本的Python,所以我安装了3.5.0(撰写本文时最新的版本)。切换到3.4.3之后,我的所有模块安装都正常了。

Python Windows版本

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

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

pip install --only-binary :all: mysqlclient

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