Windows 10并且无法找到vcvarsall.bat

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

当我尝试构建一个包时:

C:\Linter\intlib\PYTHON>python setup.py build

我收到此错误消息:

运行构建

运行build_ext

建立'LinPy'扩展

错误:无法找到vcvarsall.bat

这是我的Python版本:

在win32上的Python 3.4.4(v3.4.4:737efcadf5a6,2015年12月20日,20:20:57)[MSC v.1600 64位(AMD64)]

我正在使用Windows 10 x64。我知道this线程和其他几十个(比如thisthis以及列表继续)。所以,我想我几乎尝试了一切,但没有任何作用。似乎所有这些线程已经过时,所以我需要一些新的收据。 BTW。我试过这个:

SET VS90COMNTOOLS=%VS100COMNTOOLS%

而这(在Visual Studio 2015 Visual Studio命令提示符中):

set DISTUTILS_USE_SDK=1

我在我的机器上到处寻找vcvarsall.bat,但找不到它。

我调查了这个文件夹C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools,但它不包含任何.bat文件。无论如何,在我所有的操纵之后,python setup.py build仍然会引发同样的错误。所以,我需要帮助。谢谢!

python windows visual-studio-2010 python-3.4
6个回答
21
投票

导致该问题的原因是您没有为正在尝试运行的接受构建安装编译器。


以下是您根据MS Python工程社区可能需要的内容,

Python Version  |You will need
------------------------------------
3.5 and later   |Visual C++ Build Tools 2015 or Visual Studio 2015
3.3 and 3.4     |Windows SDK for Windows 7 and .NET 4.0
                |(Alternatively, Visual Studio 2010 if you have access to it)
2.6 to 3.2      |Microsoft Visual C++ Compiler for Python 2.7

您需要安装:Windows SDK for Windows 7 and .NET 4.0或VS 2010


资料来源:How to deal with the pain of “unable to find vcvarsall.bat”


4
投票

我做了一个搜索LinPy的python轮,不幸的是碰巧没有。

Cython有一个很好的解决方法,用于在python中为build构建一个Windows C / C ++编译器。你可以找到它here。由于您已经下载了SDK / .NET框架,因此您应该继续安装它,因为这将是步骤的一部分。如果您的系统报告已有现有版本,则可以卸载,重新启动并重新安装。

一个hackish替代方法是在Visual Studio安装目录中搜索vcvars32.batvcvarsall.bat(这些批处理文件仅用于为编译时设置环境变量)。如果找不到,则应安装SDK。我设法通过在vcvars32.batvcvarsall.bat函数中硬编码find_vcvarsallC:\Python34\Lib\distutils\msvc9compiler.py的路径来完成一项工作,但是有一个缺少的库(ISL - 整数集库)。我想这是因为我使用的是VC11。

enter image description here

我没有SDK,但您可以尝试这些,看看您的结果会发生什么


3
投票

您可以通过安装mingwpy或libpython(不是两者)来使用Microsoft 3.4编译器来缓解您的痛苦:

pip install -i https://pypi.anaconda.org/carlkl/simple mingwpy

conda install libpython


1
投票

步骤1:从here安装Visual C ++ 2010 Express。

(不要安装Microsoft Visual Studio 2010 Service Pack 1)

步骤2:从控制面板\程序和功能中删除所有Microsoft Visual C ++ 2010可再发行组件包。如果您不这样做,那么安装将失败,并显示“安装期间出现致命错误”错误。

步骤3:从here安装适用于Visual Studio 2010(v7.1)的Windows SDK脱机版本。这是64位扩展所必需的。 Windows已经内置了像Pismo这样的ISO。

步骤4:您需要使用Pismo File Mount Audit Package安装ISO文件。从here下载Pismo

步骤5:右键单击下载的ISO文件,然后选择mount with Pismo。此后,安装Setup \ SDKSetup.exe而不是setup.exe。

步骤6a:通过将目录更改为C:\ Program Files(x86)\ Microsoft Visual Studio version \ VC \ on,在C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ bin \ amd64中创建vcvars64.bat文件命令提示符。在命令提示符下键入命令:cd C:\Program Files (x86)\Microsoft Visual Studio version\VC\r

步骤6b:要为面向x86平台的64位命令行构建配置此命令提示符窗口,请在命令提示符下输入:vcvarsall x86</p>


0
投票

要使用mingwpy而不是MSVC编译器,请在文件夹%USERPROFILE%中创建名为pydistutils.cfg的文件,其中包含以下内容:

[config]
compiler=mingw32
[build]
compiler=mingw32
[build_ext]
compiler=mingw32

另见How to use MinGW's gcc compiler when installing Python package using Pip?


0
投票

为了补充Ani Menon所回答的问题,并解决了雅各比(OP)的问题,我有同样的问题,所以我跟着这篇StackOverflow帖子关于暂时改变注册表中.NET的版本号。之后更改注册表值可能是个好主意。

https://stackoverflow.com/a/33260090/4637870

这成功地让我超越了.NET 4未安装的错误,但随后又出现了另一个错误,即安装失败。

我不得不删除Microsoft Visual C ++ 2010 Redistributable的x86和x64实例,并让SDK为我安装它。在这样做之后,我能够在没有错误的情况下完成整个设置。这是我从以下地方获取信息的地方:

论坛:https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/381299c9-1bf4-44d4-989c-871735c6b4ca/windows-sdk-for-windows-7-and-net-framework-4-wont-install?forum=windowssdk

修复:https://support.microsoft.com/de-de/help/2717426/windows-sdk-fails-to-install-with-return-code-5100

我尝试在相同的包装上运行pip并且error: Unable to find vcvarsall.bat消失了。现在我有一个ValueError: ['path']但这是另一个问题。希望这些信息有所帮助

有关我的设置运行Windows 7和python 3.4的信息

© www.soinside.com 2019 - 2024. All rights reserved.