错误: 运行 Python 脚本时需要 Microsoft Visual C + + 10.0(无法找到 vcvarsall.bat)

我尝试用 PyCharm 安装 numpy,但是我总是得到这个错误:

错误: 需要 Microsoft Visual C + + 10.0(无法找到 Vcvarsall.bat).

有没有人能给我解释一下,我到底要怎么做才能修复这个错误(尽可能的简单和详细) ?IM 使用 python3.4.2(我知道这个问题以前已经有人回答过了,但是我不明白)。

156826 次浏览

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

现在是64位用户的最难的部分,老实说,我刚刚转移到32位,但是2010 Express 没有64位编译器(你会得到一个新的错误,ValueError: [‘ path’]) ,所以你必须安装 Microsoft SDK 7.1,并按照这里的说明使64位编译器与 python: PythonPIP 在 Windows7上64位安装的 MSVisualStudio2010Express 的路径上有问题一起工作

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

下载。你需要的文件,shift + 右键点击下载文件夹,选择“打开命令窗口在这里”并运行

pip install module-name.whl

我在64位3.4.3上使用了这个方法,然后我就崩溃了,并且决定使用一个可以工作的编译器来默认地从源代码中编译 pip 模块,这就是为什么二进制轮文件可以工作,而从源代码中编译 pip 却不能。

在 Python 2.7上得到这个(vcvarsall.bat)错误的人可以改为安装“ Microsoft Visual C + + Compiler for Python 2.7”

您可以在 LFD中下载. whl,然后在 CMD 中使用“ pip install * * * . whl”

我得到了同样的错误,最终使用了 SourceForge中可用的 numpy 的预构建发行版(类似地,可以获得 Matplotlib的发行版)。

可用于32位2.7和3.3/3.4的构建。
当然,PyCharm 马上就发现了他们。

VS2010 Express 不再链接到任何 VSExpress 页面(我发现)。我确实找到了这个链接到我使用的 ISO,它修复了这里提到的错误。

Http://download.microsoft.com/download/1/e/5/1e5f1c0a-0d5b-426a-a603-1798b951ddae/vs2010express1.iso

注意: 还要确保使用了 x86 everything (Python + Postgreql) ,否则会得到其他错误。我没有尝试 X64的一切。

我能够在运行 Python 3.4.3的 Windows 764-bit 上通过在命令提示符下运行 set命令来确定现有 Visual Studio 工具的环境变量,在我的例子中是用于 Visual Studio Community 2015的 VS140COMNTOOLS

然后运行下面的命令(如果你的变量有不同的名字,则替换右边的变量) :

set VS100COMNTOOLS=%VS140COMNTOOLS%

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

为了获得更持久的解决方案,通过控制面板(“编辑系统环境变量”)将这个环境变量添加到 Windows 环境中,尽管您可能需要使用实际的路径而不是变量替换。

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

  1. 点击 win + R
  2. 输入 SET VS90COMNTOOLS=%VS120COMNTOOLS%
  3. 关闭所有窗户
  4. 再次输入 pip install

现在,一年过去了,我找到了一个更简单的方法来解决这个问题。 这次我使用 VS2015和 python 3.4。

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

现在我确信你会问一些问题,什么是 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.
"""

这意味着您必须为它提供 VS2010的 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%

或者如果您正在使用 python3.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%

这和添加一个新的系统变量是一样的,参见第二种方法。

更新: 有时,它仍然不工作。检查您的路径,确保包含 VSxxxCOMNTOOLS

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

  1. 安装 VisualC + + 2010Express (下载)。(不要安装 MicrosoftVisualStudio2010ServicePack1)

  2. 从控制面板程序和特性中删除所有 MicrosoftVisualC + + 2010可再发行包。如果您不这样做,那么安装将会失败,并出现一个模糊的“安装过程中的致命错误”错误。

  3. 为 VisualStudio2010(v7.1)(下载)安装 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 SDK Windows v7.1 Bin SetEnv.cmd”/x64

  5. 在这个站点上找到扩展名,然后将它们放入 python 文件夹,并使用 pip 安装.whl 扩展名:

    Python-m pip install tensionname.whl

  6. 好好享受吧

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

在此输入图像描述