如何解决: Unable to find vcvarsall.bat

Unable to find vcvarsall.bat

尝试安装 Python 包dulwich:

pip install dulwich

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

error: Unable to find vcvarsall.batCode language: CSS (css)

本文分享几种解决方案给大家

方案1:配置 distutils

下面的方案基于mingw32 及 Python 2.6

  1. 假设mingw32安装在 C:\programs\mingw\
  2. 将 mingw32 的 bin 目录添加到PATH环境变量中:c:\programs\MinGW\bin
  3. 编辑(如果不存在则创建)位于 C:\Python26\Lib\distutils\ 的distutils.cfg文件:
[build]
compiler=mingw32
  1. 运行easy_install.exe amara。

注意更新环境变量后打开新的命令行窗口才会生效

方案2: 安装编译版本

可以从
http://www.lfd.uci.edu/~gohlke/pythonlibs/
安装编译版本

方案3 基于Visual Studio C++

  1. 运行python.exe 查看它是用哪个版本的 VC++ 编译的(如下所示)。

黄色(顶部)是 Python 2.7,使用 MSC v.1500 (Visual Studio C++ 2008) 编译
红色(底部)是 Python 3.4.1,使用 MSC v.1600 (Visual Studio C++ 2010) 编译
命令行示例显示使用 MSC v.1500 编译的 Python 2.7 和使用 MSC v.1600 编译的 Python 3.4.1

  1. 使用下表[1]将内部 VC++ 版本与相应的 Visual Studio 版本相匹配:
MSC v.1000 -> Visual C++ 4.x        
MSC v.1100 -> Visual C++ 5          
MSC v.1200 -> Visual C++ 6          
MSC v.1300 -> Visual C++ .NET       
MSC v.1310 -> Visual C++ .NET 2003  
MSC v.1400 -> Visual C++ 2005  (8.0)
MSC v.1500 -> Visual C++ 2008  (9.0)
MSC v.1600 -> Visual C++ 2010 (10.0)
MSC v.1700 -> Visual C++ 2012 (11.0)
MSC v.1800 -> Visual C++ 2013 (12.0)
MSC v.1900 -> Visual C++ 2015 (14.0)
MSC v.1910 -> Visual C++ 2017 (15.0)
MSC v.1911 -> Visual C++ 2017 (15.3)
MSC v.1912 -> Visual C++ 2017 (15.5)
MSC v.1913 -> Visual C++ 2017 (15.6)
MSC v.1914 -> Visual C++ 2017 (15.7)
MSC v.1915 -> Visual C++ 2017 (15.8)
MSC v.1916 -> Visual C++ 2017 (15.9)  Code language: CSS (css)
  1. 下载并安装相应版本的 Visual Studio C++。

下面列出了特定版本的 VC++ 的附加说明。

Visual Studio C++ 2008 注释

仅对于32 位编译器,请下载Visual Studio C++ 2008 Express Edition。

对于 64 位编译器[2] [3],请下载适用于 Windows 7 和 .NET Framework 3.5 SP1 的 Windows SDK。

取消选中所有内容,除了Developer Tools >> Visual C++ Compilers节省安装不需要的 SDK 工具的时间和磁盘空间。

Visual Studio C++ 2010 的注意事项

根据微软的说法,如果你安装了 Visual Studio 2010 SP1,它可能已经删除了 VC++ 的编译器和库。
如果是这种情况,请下载Visual C++ 2010 SP1 编译器更新。

Visual Studio C++ 2015 注释

如果不需要 Visual Studio IDE,请下载Visual Studio C++ 2015 Build Tools。

Visual Studio C++ 2017 的注意事项

如果不需要 Visual Studio IDE,请下载Build Tools for Visual Studio 2017。

建议:如果同时安装了 32 位和 64 位 Python,可能还想使用virtualenv创建单独的 Python 环境,这样就可以一次使用一个或另一个

  1. 打开cmd.exe
  2. 在尝试安装需要 C 扩展的东西之前,请运行以下批处理文件以将 VC++ 编译器的环境加载到会话中(即环境变量、编译器的路径等)。

执行:

  • 32 位编译器:
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"Code language: CSS (css)
  • 64 位编译器:
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars64.bat"Code language: CSS (css)

注意:本机 64 位编译器位于Program Files (x86). 不要问我为什么。
此外,vcvars64.bat适用于本机 64 位编译器工具,vcvarsx86_amd64.bat是可在 32 位 Windows 安装上运行的 64 位交叉编译器

如果出现error: ... was unexpected at this time., 请检查你的路径变量没有任何无关的字符,比如额外的引号

  1. 如果一切顺利,应该会收到以下消息之一,具体取决于运行的 VC++ 版本和命令:
  • 对于 32 位编译器工具:
Setting environment for using Microsoft Visual Studio 20xx x86 tools.
  • 对于 64 位编译器工具:
Setting environment for using Microsoft Visual Studio 20xx x64 tools.

发表评论