Error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat) when running Python script

Error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat) when running Python script

我正在尝试使用 PyCharm 安装 numpy,但我一直收到此错误:

error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat).

有人能准确地向我解释我必须做些什么来修复这个错误吗(尽可能简单和详细)?我正在使用 python 3.4.2(我知道之前已经回答过这个问题,但我不明白)。

Python 3.3 及更高版本现在使用 2010 编译器。解决此问题的最佳方法是免费安装 Visual C++ Express 2010

现在是 64 位用户的难点,老实说,我刚转到 32 位,但 2010 express 没有 64 位编译器(你得到一个新错误,ValueError:['path'] ) 所以你必须安装 Microsoft SDK 7.1 并按照这里的说明来让 64 位编译器使用 python: Python PIP has issues with path for MS Visual Studio 2010 Express for 64-bit install on Windows 7

您现在使用 32 位版本可能会更容易。除了让编译器正常工作之外,您还可以通过从该位置获取二进制 wheel 文件来绕过编译许多模块的需要 http://www.lfd.uci.edu/~gohlke/pythonlibs/

只需下载您需要的 .whl 文件,shift + 右键单击​​下载文件夹和 select "open command window here" 和 运行

pip install module-name.whl 

我在 64 位 3.4.3 上使用了那个方法,然后我崩溃了,决定只为 pip 提供一个工作编译器,默认情况下从源代码编译模块,这就是为什么二进制 wheel 文件可以工作并且从源代码构建 pip没有。

在 Python 2.7 上遇到此 (vcvarsall.bat) 错误的人可以改为安装 "Microsoft Visual C++ Compiler for Python 2.7"

您可以在 LFD 下载 .whl。然后在CMD

中使用"pip install ***.whl"

我遇到了同样的错误,最终使用了 SourceForge (similarly, a distribution of matplotlib 中可用的预构建 numpy 发行版。

32 位 2.7 和 3.3/3.4 版本可用。
PyCharm当然是马上就检测到了。

VS 2010 Express 不再link编辑到任何 VS Express 页面(我发现的)。我确实在我使用的 ISO 中找到了这个 link,它修复了这里提到的错误。

http://download.microsoft.com/download/1/E/5/1E5F1C0A-0D5B-426A-A603-1798B951DDAE/VS2010Express1.iso

注意:还要确保您拥有 x86 一切(Python + Postgresql),否则您会遇到其他错误。我没有尝试 x64 的一切。

我能够通过 运行ning set 命令在 Windows 7 64 位 运行ning Python 3.4.3 上修复此问题用于确定现有 Visual Studio 工具环境变量的命令提示符;在我的例子中,它是 VS140COMNTOOLS for Visual Studio Community 2015.

然后 运行 以下内容(如果您的名称不同,请替换右侧的变量):

set VS100COMNTOOLS=%VS140COMNTOOLS%

这使我能够安装 PyCrypto 模块,该模块之前给我的错误与 OP 相同。

要获得更永久的解决方案,请通过控制面板 ("Edit the system environment variables") 将此环境变量添加到您的 Windows 环境中,但您可能需要使用实际路径而不是变量替换。

这个问题我遇到过两次了。 我第一次使用 VS 2013,第二次使用 VS 2015 和不同的解决方案。 VS 2013 和 python 2.7 上的第一个解决方案是:

  1. 点击win+R
  2. 输入SET VS90COMNTOOLS=%VS120COMNTOOLS%
  3. 全部关闭windows
  4. 再次输入pip install

现在,一年后,我找到了一种更简单的修复方法。 这次我用VS 2015和python 3.4.

  1. 右键单击“我的电脑”。
  2. 点击属性
  3. 高级系统设置
  4. 环境变量
  5. 添加新系统变量
  6. 在变量名中输入VS100COMNTOOLS
  7. VS140COMNTOOLS 的值输入新变量。
  8. 全部关闭windows

现在我肯定你会问一些问题VSXXXCOMNTOOLS如果我使用VS2008或其他编译器我应该怎么做

有一个文件python\Lib\distutils\msvc9compiler.py,我们看到第216行开始

def find_vcvarsall(version):
    """Find the vcvarsall.bat file
    At first it tries to find the productdir of VS 2010 in the registry. If
    that fails it falls back to the VS100COMNTOOLS env var.
    """

也就是说你必须给它提供VS 2010的productdir,所以如果你在使用 python 2.x 和

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

或者如果您使用 python 3.x 和

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

和添加一个新的系统变量是一样的。见第二种方式

更新:有时,它仍然没有work.Check你的路径,确保包含VSxxxCOMNTOOLS

尝试安装 lxml、grab 和其他扩展,这需要 VS 10.0+ 并遇到同样的问题。我找到自己的方法来解决这个问题(Windows 10 x64,Python 3.4+):

  1. 安装 Visual C++ 2010 Express (download)。 (不要安装 Microsoft Visual Studio 2010 Service Pack 1 )

  2. 从控件 Panel\Programs 和功能中删除所有 Microsoft Visual C++ 2010 Redistributable 包。如果您不这样做,那么安装将失败并出现一个模糊的 "Fatal error during installation" 错误。

  3. 为 Visual Studio 2010 (v7.1) (download) 安装离线版本的 Windows SDK。这是 64 位扩展所必需的。 Windows 内置了 ISO 挂载。只需挂载 ISO 和 运行 Setup\SDKSetup.exe 而不是 setup.exe.

  4. 在 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64 中创建一个 vcvars64.bat 文件,其中包含:

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

  5. 在本站找到扩展,然后放入python文件夹,用pip安装.whl扩展:

    python -m pip 安装extensionname.whl

  6. 尽情享受

你必须检查你的 pip 包是否更新到你的 pycharm 中的最新版本,然后安装 numpy 包。 在设置 -> project:progLangComp -> 项目解释器中有一个 table 包和它们的当前版本(只是标记为版本)和它们的最新版本(标记为最新)。 pip 当前版本号应与最新版本相同。如果你在 pip 前面看到一个蓝色箭头,你必须将它更新到最新版本,然后尝试安装 numpy 或任何其他你无法安装的软件包,对我来说,我想安装的是 pandas。

enter image description here