【问题标题】:Error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat) when running Python script [duplicate]错误:运行 Python 脚本时需要 Microsoft Visual C++ 10.0(无法找到 vcvarsall.bat)[重复]
【发布时间】:2015-03-30 20:08:29
【问题描述】:

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

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

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

【问题讨论】:

  • 具有讽刺意味的是,这个问题没有公认的答案。此问题还需要有关平台的更多详细信息。什么版本的 numpy、PyCharm 和 windows。更重要的是,哪些部分是 32 位的,哪些是 64 位的。
  • 64 位 windows 7 家庭高级版,numpy 1.9.1,pycharm 4.0.4。 64位python 3.4.2
  • 如果您有其他版本的 Visual Studio,请查看@Gordon Mckeown 的答案。 (stackoverflow.com/a/32006750/6629)
  • 如果您使用的是 Visual Studio,Microsoft PTVS github 对此错误有话要说:github.com/Microsoft/PTVS/wiki/Python-Environments

标签: python numpy pycharm


【解决方案1】:

我能够在运行 Python 3.4.3 的 Windows 7 64 位上解决此问题,方法是在命令提示符处运行 set 命令以确定现有的 Visual Studio 工具环境变量;就我而言,它是 Visual Studio Community 2015 的 VS140COMNTOOLS

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

set VS100COMNTOOLS=%VS140COMNTOOLS%

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

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

【讨论】:

  • 这非常有用。我想分享我在 Windows 10 64bit 上的配置。我已经安装了 python 3.4.3 32bits。我的 'VS140COMNTOOLS' 中没有 'vcvarsall.bat' 但它位于 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC' 然后我按照你的技术。 1. 使用 VC++ 编程安装 Visual Studio 2015 社区版 2. 在 System Properties....Advanced....Environment Variables 中创建新的用户变量。和这个类似。 变量名:VS100COMNTOOLS 变量值:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
  • 这适用于我在运行 Python 3.4.3 64 位的 Windows 10 64 位上使用 VS120COMNTOOLS(适用于 VS 2013)而不是 2015 变量。
  • 感谢为我工作(Win 10 64bit with python 3.4 64 bit)。我成功安装了 Numpy 和 matplotlib
  • win10 64bit with python 3.4 32 bit,谢谢!
  • 或者export VS100COMNTOOLS=$VS140COMNTOOLS如果你使用bash
【解决方案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 位版本。除了让编译器工作之外,您还可以通过从该位置获取二进制轮文件来绕过编译许多模块的需要http://www.lfd.uci.edu/~gohlke/pythonlibs/

只需下载你需要的.whl文件,shift+右键下载文件夹选择“在此处打开命令窗口”运行

pip install module-name.whl 

在我崩溃之前,我在 64 位 3.4.3 上使用了该方法,并决定只为 pip 默认情况下从源代码编译模块获取一个工作编译器,这就是为什么二进制轮文件可以工作并且从源代码构建 pip 的原因t.

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

【讨论】:

  • Visual C++ 2010 Express 仅免费使用 30 天。
  • 30天后也是免费的;只要您注册;据我所知?
  • 对我不起作用...即使我使用 whl :( [windows 7 64 bits - Python 2.7]
  • 对我来说也一样,当我尝试安装时,我得到:lxml-3.4.4-cp34-none-win_amd64.whl is not a supported wheel on this platform. 我正在使用 windows 8.1 x64 和 python 3.4.3
  • 给定的 VS2010 链接失效了
【解决方案3】:

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

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

现在,一年后,我找到了一种更简单的方法来修复它。 这次我使用 VS 2015 和 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.
    """

表示你必须给它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%

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

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

【讨论】:

  • Thanks# @FavorMylikes-- 这帮助我更接近安装,但现在我收到一个关于找不到文件 c1.exe 的新错误,所以我也将它添加到 PATH ,但这并没有解决问题。如果您对此有任何想法,我会欣喜若狂地听到他们的声音
  • 请确保您有任何版本的编译器,例如 2010 编译器。您可以在landinghub.visualstudio.com/visual-cpp-build-tools 下载它们。安装后你可以在你的路径中看到 VSxxxCOMNTOOLS
  • "找不到命令集"
【解决方案4】:

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

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

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

【讨论】:

  • 我遇到了同样的问题,因为他们大力推动 Visual Studio 社区版。我希望他们可能已经捆绑了旧的依赖项或其他东西,但我发现情况并非如此。也许这是win10发布的疏忽?感谢您找到该链接,它为我解决了依赖问题。
【解决方案5】:

我遇到了同样的错误,最终使用了SourceForge 中可用的 numpy 的预构建分布(类似地,可以获得matplotlib 的分布)。

提供适用于 32 位 2.7 和 3.3/3.4 的版本。
当然,PyCharm 会立即检测到它们。

【讨论】:

    【解决方案6】:

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

    【讨论】:

      【解决方案7】:

      尝试安装 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. 从控制面板\程序和功能中删除所有 Microsoft Visual C++ 2010 Redistributable 软件包。如果您不这样做,那么安装将失败并出现一个模糊的“安装期间出现致命错误”错误。

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

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

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

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

        python -m pip install extensionname.whl

      6. 享受

      【讨论】:

        【解决方案8】:

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

        enter image description here

        【讨论】:

          猜你喜欢
          • 2015-09-18
          • 2020-06-10
          • 2017-01-25
          • 2021-12-23
          • 2019-12-26
          相关资源
          最近更新 更多