我尝试安装Python包dulwich:

pip install dulwich

但我收到了一条神秘的错误消息:

error: Unable to find vcvarsall.bat

如果我尝试手动安装软件包,也会发生同样的情况:

> python setup.py install
running build_ext
building 'dulwich._objects' extension
error: Unable to find vcvarsall.bat

当前回答

从安装Visual Studio 2015社区版https://www.visualstudio.com,然后

对于Python 3.4

设置VS100COMNTOOLS=%VS140COMNTOOLS%&&pip安装XX

其他回答

我有python 2.73和windows 7。对我有效的解决方案是:

将mingw32的bin目录添加到环境变量:用C:\programs\mingw\bin追加PATH;已创建distutils.cfg,位于C:\Python27\Lib\distutils\distutils.ccfg,包含:[生成]编译器=mingw32

要处理MinGW不再识别-mno cygwin标志的问题,请删除C:\Python27\Lib\distutils\cygwincompiler.py第322到326行中的标志,因此如下所示:

  self.set_executables(compiler='gcc -O -Wall',
                         compiler_so='gcc -mdll -O -Wall',
                         compiler_cxx='g++ -O -Wall',
                         linker_exe='gcc',
                         linker_so='%s %s %s'
                                    % (self.linker_dll, shared_option,
                                       entry_point))

我尝试了以上所有的答案,但没有为我工作。我使用的是Windows 10,并安装了Visual Studio 2010在我的情况下,需要将vcvars64.bat添加到C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\bin\amd64

下面是vcvars64.bat:

CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64

如果未安装,请安装Microsoft SDK 7.1,然后重新运行pip Install dulwich

我也遇到了同样的问题,现在已经解决了。

“谷歌”告诉我,我需要安装“Microsoft Visual C++编译器Python 2.7版”。我不仅安装了该工具,还安装了Visual C++2008 Reditributable,但无济于事。然后我尝试安装Visual C++2008速成版。问题已经解决了!

只需尝试安装Visual C++2008速成版!

更新:评论指出,此处的说明可能很危险。请考虑使用Visual C++2008速成版或专门构建的Microsoft Visual C++编译器Python版(详细信息),不要使用下面的原始答案。原始错误消息表示未安装所需版本的Visual C++。


对于Windows安装:

在为包安装运行setup.py时,Python 2.7会搜索已安装的Visual Studio 2008。通过在调用setup.py之前在VS90COMNTOOLS环境变量中设置正确的路径,可以诱骗Python使用较新的Visual Studio。

根据安装的Visual Studio版本执行以下命令:

Visual Studio 2010(VS10):SET VS90COMNTOOLS=%VS100COMNTOOLS%Visual Studio 2012(VS11):SET VS90COMNTOOLS=%VS110COMNTOOLS%Visual Studio 2013(VS12):SET VS90COMNTOOLS=%VS120COMNTOOLS%Visual Studio 2015(VS14):SET VS90COMNTOOLS=%VS140COMNTOOLS%


警告:如下所述,如果您试图编译python模块,则此答案不太可能奏效。

有关详细信息,请参阅在Windows上为Python 2.7构建lxml。

我花了将近2天的时间来研究如何在我的python 3.4 64位版本中解决这个问题:python 3.4.3(v3.4.3:9b73f1c3e601,2015年2月24日,22:44:40)[MSC v.1600 64位(AMD64)]

解决方案1,硬:(在阅读之前,先阅读下面的解决方案2)最后,这是帮助我的:

安装Visual C++2010学习版安装Microsoft Windows SDK v7.1 for Windows 7在C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\bin\amd64中手动创建vcvars64.bat文件,该文件包含CALL“C:\Program Files\Microsoft SDK \Windows\v7.1\bin\SetEnv.cmd”/x64或其他路径,具体取决于安装位置(这似乎是可选的)安装Microsoft Visual Studio 2010 Service Pack 1以及针对Windows SDK 7.1的Microsoft Visual C++2010 Service Pack 2编译器更新之后,我尝试pip安装numpy,但收到以下错误:get_mathlib_info中的文件“numpy\core\setup.py”,第686行raise RuntimeError(“断开的工具链:无法链接简单的C程序”)运行时错误:工具链断裂:无法链接简单的C程序我在C:\Python34\Lib\distutils\msvc9compiler.py中将mfinfo更改为Nonehttps://stackoverflow.com/a/23099820/4383472最后,在pipinstallnumpy命令之后,我的avast防病毒软件试图干扰安装过程,但我很快禁用了它

花了很长时间——numpy编译了几分钟,我甚至认为有错误,但最终一切都正常。

解决方案2,简单:(我知道这一方法已经在一个高投票率的答案中被提及,但让我重复一遍,因为它确实更容易)在经历了所有这些工作之后,我明白了对我来说最好的方法就是使用来自http://www.lfd.uci.edu/~gohlke/pythonlibs/未来。有一个很小的机会,我将永远需要一些包(或包的版本),而这个网站不包含。这样安装过程也快得多。例如,要安装numpy:

donwload numpy‑1.9.2+mkl‑cp34‑none‑win_amd64.whl(如果您有Python 3.4 64位)在命令提示符或powershell中,使用pip pip install numpy‑1.9.2+mkl‑cp34‑none‑win_amd64.whl(或文件的完整路径,具体取决于命令提示符的打开方式)进行安装