错误:找不到vcvarsall.bat

878

我尝试安装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

4
Steve Dower是微软Python团队的成员,他撰写了一篇值得一读的关于这个主题的博客文章:https://blogs.msdn.microsoft.com/pythonengineering/2016/04/11/unable-to-find-vcvarsall-bat/。 - Cody Piersall
43个回答

3

在2016年解决这个问题最简单的方法是安装Chocolatey,然后安装vcpython27软件包。打开Powershell:

> iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
> choco install python2 -y
> choco install vcpython27 -y

3

3
如果您已经安装了mingw
pip install --global-option build_ext --global-option --compiler=mingw32 packagename

工作正常,强制使用mingw编译器而不是Microsoft的pip。有关详细信息,请参见此处https://github.com/pypa/pip/issues/18(最后一篇帖子)。


3

我尝试了很多解决方案,但只有一个对我有效,那就是安装 Microsoft Visual Studio 2008 Express C++。

这个问题出现在一个用C语言编写的Python 2.7模块(yEnc)中,(它还有其他与MS VS相关的问题)。请注意,Python 2.7是使用MS VS 2008版本构建的,而不是2010版本。

虽然它是免费的,但它很难找到,因为微软正在推广VS 2010。不过,MSDN官方的直接链接仍然有效:请查看https://dev59.com/VGUp5IYBdhLWcg3wXGy8#15319069获取下载链接。


2

2
一份详尽的 MS VС++ 版本列表,以及官方支持的安装变体(部分由 setuptools 支持),以及如何使用它们,可以在以下网址找到:distutils

https://wiki.python.org/moin/WindowsCompilers

它还指定了哪个VC++版本适用于哪个官方Win32 Python版本。请注意,MinGW不受官方支持(详见下文)。
简而言之:
对于每个发布版本,都有一个特定的 Visual Studio 发布版可以直接使用。
请注意,2012年之前的 Express 版本不支持x64。尝试使用其中一个进行 x64 开发会导致奇怪的错误
对于独立的 SDK,通常需要从 SDK 提示符(=设置环境变量)中运行安装程序。
对于某些 SDK,可以通过一次性调整来解除此要求,而不会产生负面影响。
一些不寻常的 VC++ 发布版受到 setuptools 的支持,而不是 distutils。
据说 MinGW “可用”,但只适用于 x86。https://bugs.python.org/issue4709 表明其支持存在问题,即使是 x86 也会在 Python 3.5 中出现问题。

2

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

"谷歌"告诉我需要安装 "Microsoft Visual C++ Compiler for Python 2.7"。 我不仅安装了这个工具,还安装了 Visual C++ 2008 Reditributable,但是没有用。然后我尝试安装Visual C++ 2008 Express Edition,问题就解决了!

建议尝试安装Visual C++ 2008 Express Edition!


1

@monkey的回答是正确的之一,但不完整。

如果你想使用MinGW,你应该在MinGW安装过程中选择C、C++和其他开发工具以获得“make.exe”。

你还必须将环境变量设置为make.exe所在路径。

为了补充他的回答,以下是步骤:

  1. 将mingw32的bin目录添加到您的环境变量中
  2. C:\Programs\MinGW\bin;C:\Programs\MinGW\msys\1.0\bin;追加到PATH中
  3. 编辑(如果不存在则创建)位于C:\Python26\Lib\distutils\distutils.cfgdistutils.cfg文件,使其为:

    [build]
    compiler=mingw32
    

确保环境变量已设置,方法是打开一个新的cmd.exe。


1

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

对于Python 3.4

set VS100COMNTOOLS=%VS140COMNTOOLS% && pip install XX


1
我遇到了同样的错误(就错误信息而言,我觉得它很傻,也不是很有用),虽然我有可用的C编译器,但仍然遇到了问题。

令人惊讶的是,对于我来说最终起作用的方法是将pip和setuptools升级到最新版本。希望这能帮助其他人解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接