python 3.x - visualcppbuildtools_full - python要在Visual Studio 2015(v 14)中编译缺少vcvarsall.bat




visualcppbuildtools_full.exe下载 (4)

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

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

Windows OS解决方案

最简单的解决方案是:

  • 浏览到 URL http://aka.ms/vcpython27
  • 下载 适用于Python 2.7的Microsoft Visual C ++编译器
  • 快照:

  • 版本: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包setuptools 6.0或更高版本是Python自动检测此编译器包所必需的。 建议使用wheel来生产预构建的二进制包。
  • 安装说明:
    • 安装和卸载编译器软件包将默认为仅为当前用户安装,并且不需要管理特权。 要为机器的所有用户安装,请从提升的命令提示符处执行msiexec / i ALLUSERS = 1。
    • 与Python分发工具一起使用Python软件包开发人员应下载并使用此编译器为他们的Python软件包生成二进制轮子,以上传到PyPI。 安装wheel软件包,更新到setuptools 6.0或更高版本,以及将setup.py bdist_wheel上传添加到您的构建过程中,将生成正确的文件(请记住,对于32位和64位版本都执行此操作)。
    • 如果要安装的Python软件包没有轮子,则可以在自己的计算机上安装此编译器软件包。 安装编译器并更新到setuptools 6.0或更高版本后,可以使用pip install生成和安装Python软件包。 如果要管理多台计算机,并且需要在所有计算机上都安装Python软件包,则应安装wheel软件包并使用pip wheel生成不需要安装此软件包即可在计算机上安装的wheel。
  • 将软件包安装在本地主机上。
  • 成功安装所需的 Python 2.7模块, 没有任何错误。

我正在尝试在安装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的同一版本的编译器来执行此操作( 错误:无法找到vcvarsall.bat )。 我的python使用[MSC v.1900 64位(AMD64)]进行编译-vs 14(Visual Studio 2015)

我从以下研究中进一步了解了我的研究: pip install提供了错误:无法 $python_install_prefix/Lib/distutils/msvc9compiler.py 找到get_build_version get_build_version() $python_install_prefix/Lib/distutils/msvc9compiler.py 返回应该用于查找路径的vs版本。 vcvarsall.bat 对我来说,此方法返回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。

为什么vs 14.0中缺少vcvarsall.bat?


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



我在尝试使用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 




python-2.x