错误:无法找到vcvarsall.bat

880 投票
43 回答
959593 浏览
提问于 2025-04-15 22:37

我尝试安装一个叫做 dulwich 的Python包:

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

43 个回答

221

你可以从这个网站下载已经编译好的版本:http://www.lfd.uci.edu/~gohlke/pythonlibs/

227

我找到了解决办法。
我之前也遇到过同样的问题和错误,在安装“amara”时。我已经安装了mingw32,但需要配置distutils。

  1. 我已经安装了Python 2.6。
  2. 我把mingw32安装到了 C:\programs\mingw\ 这个路径。
  3. 需要把mingw32的bin目录添加到你的环境变量中:在PATH后面加上 c:\programs\MinGW\bin;
  4. 编辑(如果没有就创建)distutils.cfg 文件,路径是 C:\Python26\Lib\distutils\distutils.cfg,内容要改成:

    [build]
    compiler=mingw32
    
  5. 现在运行 easy_install.exe amara

确保环境变量设置正确,可以打开一个新的 cmd.exe 窗口来检查。

685

更新: 有评论指出这里的指示可能会有危险。建议使用 Visual C++ 2008 Express 版本或者专门为 Python 设计的 Microsoft Visual C++ Compiler for 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

撰写回答