【问题标题】:vcvarsall.bat needed for python to compile missing from visual studio 2015 ( v 14)python 编译所需的 vcvarsall.bat 缺少 Visual Studio 2015 (v 14)
【发布时间】:2015-10-24 20:46:18
【问题描述】:

我正在尝试在安装了 Visual Studio 2015 Ultimate 的 Windows 10 下的 Python 3.5 中安装 numpy。

短版:vs14 文件夹 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC 文件夹中缺少文件 vcvarsall.bat。为什么?

长版: 运行pip install numpy 给我这个错误error: Unable to find vcvarsall.bat

研究这个错误让我得到了几个 stackoverflow 答案,这些答案帮助我弄清楚 python 需要 c++ 编译器来编译一些包。并且它需要使用与编译 python 3.5 相同版本的编译器来执行此操作( error: Unable to find vcvarsall.bat)。我的 python 是使用 [MSC v.1900 64 bit (AMD64)] 编译的 - 这是 vs 14 (visual studio 2015)

进一步推进我的研究,我从中学到了: pip install gives error: Unable to find vcvarsall.bat那个 get_build_version() from $python_install_prefix/Lib/distutils/msvc9compiler.py 返回应该用于查找 vcvarsall.bat 路径的 vs 版本 对我来说,这个方法返回 14。所以一切都正确。

现在,当我查看文件夹 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC 时,发现文件 vcvarsall.bat 丢失。

但是当我查看文件夹 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC 时,有一个 vcvarsall.bat。

为什么 vcvarsall.bat 从 vs 14.0 中丢失??

【问题讨论】:

  • C++ 工具在安装过程中是可选的。您是否选中了复选框?
  • 似乎是我应该做的事情,但显然我错过了。谢谢。
  • 你能解决这个问题吗?我也在挣扎
  • 是的,通过安装我的 Visual Studio 中未安装的 c++ 工具。
  • 请参阅图片here 安装工具,我相信。返回设置,找到修改,然后继续

标签: python-3.x visual-c++ visual-studio-2015 pip python-2.x


【解决方案1】:

确保在 Visual Studio 中安装了 C++ 常用工具。

程序和功能 -> VS 2015 -> 更改

【讨论】:

  • 这正是需要的,非常感谢。
  • faaark;你刚刚救了我一次去精神病院的旅行。
  • 你如何进入这个窗口?我已经安装了 Visual Studio,没有安装 vsvarsall.bat 就无法编译 numpy。
  • 程序和功能 -> VS 2015 -> 改变
  • 感谢您的回答。请注意,在使用 Windows Platform Installer 安装 VS2015 后,我必须单独安装一个更新 KB3165756,它随附所有 Visual C++ 工具。
【解决方案2】:

我之前在尝试安装 numpy 时遇到过这个问题。虽然我无法修复“vcvarsall.bat”问题,但我发现我可以从这里下载预编译的库:http://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载所需的库,导航到下载的 .whl 文件所在的位置,然后打开命令提示符窗口。运行'pip install [whl 文件名]' 这将为您安装库,没有编译问题。

【讨论】:

    【解决方案3】:

    我下载了 Microsoft Visual C++ 构建工具 Link Here,一切正常。

    【讨论】:

    • 是的,但是如果您还没有安装 Visual Studio,则需要将其删除
    【解决方案4】:

    我在尝试使用 python 2.7(使用 VS 2015 编译)构建 ujson 包时遇到了这个问题。

    • vcvarsall.bat:尝试将 vsvars32.bat(从同一目录 - “c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools”)复制到 vcvarsall.bat。这就是构建所需的一切
    • 另一个问题是在函数 get_build_version() (distutils/msvc9compiler.py) 中检测 VS 版本。您需要更改此函数以返回正确版本的 VS。

    有这一行:

    majorVersion = int(s[:-2]) - 6
    

    它将majorVersion设置为13,但是VS 2015的正确版本是14。所以你需要添加两行,例如:

    if majorVersion == 13:
        majorVersion = 14 
    

    【讨论】:

    • 感谢您复制 vsvars32.bat 的提示为我节省了很多时间!
    【解决方案5】:

    我也遇到了同样的问题(Windows 7、Python 3.4、pip 7.1)

    pip install mysqlclient
    (...)
    error: Unable to find vcvarsall.bat
    

    我按照以下说明操作:https://www.linkedin.com/pulse/resolving-python-error-unable-find-vcvarsallbat-bhanu-pratap-singh/

    然后将 pip 升级到 9.0.1

    python -m pip install --upgrade pip
    

    再试一次:

    pip install mysqlclient
    

    然后瞧:

    Successfully installed mysqlclient-1.3.12
    

    【讨论】:

      【解决方案6】:

      在安装任何 Python 2.7 模块时,如果您遇到错误:

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

      Windows 操作系统解决方案

      最简单的解决方案是:

      • 浏览到 URL http://aka.ms/vcpython27
      • 下载 Microsoft Visual C++ Compiler for Python 2.7
      • 快照:

      • 版本:9.0.0.30729
      • 文件名:VCForPython27.msi
      • 发布日期:2014 年 9 月 29 日
      • 文件大小:83.8 MB
      • 详情:

        • 此包包含为 Python 包生成二进制轮子所需的编译器和一组系统头文件。然后可以在任何 Windows 系统上安装 Python 包的二进制轮,而无需访问 C 编译器。

        • 如果您需要此编译器包,您将收到的典型错误消息是无法找到 vcvarsall.bat

        • 出现此消息是因为正在安装的 Python 包包含本机扩展模块 (.pyd) 的源代码,但没有该模块的预构建副本。 pythonwheels.com 上突出显示的 Python 包已由其开发人员更新以包含预构建的二进制文件,但许多仍仅作为源代码提供。

        • 这个编译器包完全不受支持,它代表了与 Python 2.7 完全兼容的最后一个版本的快照。如需最新的安全和错误修复,请使用最新版本的 Microsoft Visual Studio 进行任何不直接与 Python 2.7 交互的开发工作。

      • 系统要求:
        • 支持的操作系统:Windows 7、Windows 8、Windows 8.1
        • Microsoft Visual C++ 2008 SP1 可再发行包(x86、x64) Windows 8 及更高版本需要 Microsoft .NET Framework 3.5。有关安装说明,请参见此处。
        • 磁盘空间要求:安装需要 380 兆字节 (MB) 的硬盘空间。
        • Python 包 Python 需要 setuptools 6.0 或更高版本才能自动检测此编译器包。 推荐使用 wheel 来生成预构建的二进制包。
      • 安装说明:
        • 安装和卸载 编译器包将默认为当前用户安装,不需要管理权限。要为机器的所有用户安装,请从提升的命令提示符执行 msiexec /i ALLUSERS=1。
        • 与 Python 分发工具一起使用 Python 包开发人员应下载并使用此编译器生成二进制轮子,以便将其 Python 包上传到 PyPI。安装 wheel 包,更新到 setuptools 6.0 或更高版本,并将 setup.py bdist_wheel upload 添加到您的构建过程将生成正确的文件(请记住对 32 位和 64 位版本都执行此操作)。
        • 如果您正在安装的 Python 包没有轮子,您可以在自己的机器上安装此编译器包。安装编译器并更新到 setuptools 6.0 或更高版本后,您可以使用 pip install 构建和安装 Python 包。如果您管理多台机器,并且需要在所有机器上安装 Python 包,则应安装 wheel 包并使用 pip wheel 生成可以安装在机器上的轮子,无需此包。
      • 在您的本地主机上安装包。
      • 成功安装所需的Python 2.7 模块,没有任何错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-11
        • 2019-11-30
        • 1970-01-01
        • 2015-10-27
        • 2016-10-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多