vcvarsall.bat需要python来编译visual studio 2015中的缺失(第14节)

问题描述 投票:51回答:6

我试图在Windows 10下使用Visual Studio 2015终极安装在python 3.5中安装numpy。

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

长版:运行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位(AMD64)]编译的 - 这是vs 14(visual studio 2015)

继续我的研究,我从以下方面学到:pip install gives error: Unable to find vcvarsall.bat来自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?

python-3.x visual-c++ visual-studio-2015 pip python-2.x
6个回答
91
投票

确保在Visual Studio中安装了C ++ Common Tools。

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

VS2015 setup


6
投票

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


2
投票

我下载了Microsoft Visual C ++构建工具Link Here,一切都很好。


1
投票

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

0
投票

我遇到了同样的问题(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

0
投票

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

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

永远如土壤

最简单的解决方案是:

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

vcpython27

  • 版本: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上传添加到构建过程将生成正确的文件(请记住为32位和64位版本执行此操作)。 如果要安装的Python包没有滚轮,则可以在自己的计算机上安装此编译器包。一旦安装了编译器并且您已更新到setuptools 6.0或更高版本,就可以使用pip install来构建和安装Python包。如果您要管理多台机器并且需要在所有机器上安装Python软件包,则应安装轮组件并使用小轮来生成可安装在机器上的轮子而无需此软件包。
  • 在本地主机上安装软件包。
  • 成功安装所需的Python 2.7模块,没有任何错误。
© www.soinside.com 2019 - 2024. All rights reserved.