运行Python脚本时找不到vcvarsall.bat

Ari*_*iel 59 python visual-studio-2010

我正在使用Vista,并使用Python 2.6.4.我正在使用一个使用Python脚本的软件,但碰到了这个消息:

cannot find vcvarsall.bat
Run Code Online (Sandbox Code Playgroud)

所以,我安装了visual c ++ 2010.仍然找不到文件 - 但是,它就在那里.我的猜测(一个非常没有受过教育的人......)是路径错误的地方,因为我还有一个旧的视觉2008(非常空)文件夹.我不知道在哪里对新路径进行更改.我是否在注册表或脚本中更改了某些内容?或者别的地方?

Cad*_*nge 44

似乎Python正在明确地寻找Visual Studio 2008.我遇到了这个问题,即使它在路径上也无法找到vcvarsall.bat.

事实证明Visual Studio 2010创建了以下环境变量:

SET VS100COMNTOOLS=C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\
Run Code Online (Sandbox Code Playgroud)

修复是创建一个名为的变量VS90COMNTOOLS,并指向Visual Studio 2010常用工具文件夹,例如

SET VS90COMNTOOLS=C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\
Run Code Online (Sandbox Code Playgroud)

这为我修复了它,我现在可以使用Visual Studio 2010编译器构建包.

您还可以使用以下命令将VS90环境变量设置为指向VS100环境变量:

SET VS90COMNTOOLS=%VS100COMNTOOLS%
Run Code Online (Sandbox Code Playgroud)

  • 用于Windows的官方Python构建是使用Visual Studio 2008构建的,并且通过查看它明确查找VS90COMNTOOLS的源代码.VS10COMNTOOLS由visual studio安装程序创建,因此可以随意处理与Microsoft的一致性问题:) (4认同)
  • 尽管如此,这不是问题.它不是Python寻找的环境变量,因此您需要创建相关的环境变量(即VS90COMNTOOLS)并将其指向您的VS 2010常用工具文件夹. (2认同)
  • 在我的vs2012安装中,VCVARSALL.BAT位于C:\ Program Files\Microsoft Visual Studio 11.0\VC中,而不是位于上述位置.我把它包含在路径中,它似乎工作. (2认同)

alf*_*nso 26

这是一个简单的解决方案.我正在使用Python 2.7和Windows 7.

您要安装的内容需要C/C++编译器,但Python没有找到它.许多Python包实际上是用C/C++编写的,需要编译.编译C++需要vcvarsall.bat,pip假设你的机器可以做到这一点.

  1. 首先尝试升级setuptools,因为v6.0及更高版本会自动检测编译器.您可能已经有了编译器,但Python无法找到它.打开命令行并键入:

    pip install --upgrade setuptools

  2. 现在再次尝试安装您的包:

    pip install [yourpackagename]

  3. 如果这不起作用,那么肯定你没有编译器,所以你需要安装一个:http:
    //www.microsoft.com/en-us/download/details.aspx?id = 44266

  4. 现在再试一次:

    pip install [yourpackagename]

你去吧 它应该适合你.

  • `pip install --upgrade setuptools`解决了我的问题(无法在jetbrains pycharm中安装多个软件包),从Windows 7中的'C:\ Python27\Scripts'运行 (6认同)
  • 这是一个比我在其他地方看到的更简单的解决方案 - 没有搞乱视觉工作室.谢谢. (2认同)

fil*_*set 14

此问题的解决方案是设置以下环境变量:

VS90COMNTOOLS
Run Code Online (Sandbox Code Playgroud)

例如:

set VS90COMNTOOLS=C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools
Run Code Online (Sandbox Code Playgroud)

安装Visual Studio后不重新启动或安装后未启动新的命令提示符可能导致此错误.

您可以用来编译扩展的Visual Studios版本可能取决于您正在构建的python版本.


Rav*_*mar 9

2015年,如果你仍然遇到这个令人困惑的错误,请责怪 PIP使用的python默认setuptools.

  1. http://www.microsoft.com/en-in/download/details.aspx?id=44266下载并安装编译python 2.7模块所需的最小Microsoft Visual C++编译器for Python 2.7 .
  2. 更新您的setuptools - pip install -U setuptools
  3. 安装任何需要C编译的python包. pip install blahblah

它会工作正常.

更新:它不适用于所有库.我仍然会遇到一些需要lib-headers的模块错误.他们唯一能够完美运行的是Linux平台


gab*_*ous 6

这个神秘的错误意味着您没有安装C编译器.有一个讨论提出了一个更具解释性的错误(如果你关心的话,这里继续,注册和评论!)但目前它还没有实现.

要解决此问题,您可以安装大约需要GB的Visual Studio 2008 SDK,也可以安装非常小的VCForPython27.msi但目前distutils不能很好地支持,这里是以下过程:

1) install Microsoft Visual C++ Compiler for Python 2.7 from
http://www.microsoft.com/en-us/download/details.aspx?id=44266
2) Enter MSVC for Python command prompt
3) SET DISTUTILS_USE_SDK=1
4) SET MSSdk=1
5) you can then build your C extensions: python.exe setup.py ...
Run Code Online (Sandbox Code Playgroud)

在构建C扩展之前,必须每次都重现步骤2到4.这是因为VCForPython27.msi存在问题,它将头文件和vcvarsall.bat安装在与VS2008 SDK不同的文件夹中,从而混淆了编译器对distutils的检测.这将在Python 2.7.10中的setuptools中得到修复.

Gregory Szorc的错误报告和解决方法:http://bugs.python.org/issue23246

有关在IPython中使用%% cython magic的更多信息和解决方法:https://github.com/cython/cython/wiki/CythonExtensionsOnWindows

/编辑: 此外,如果你有另一个版本的Python,你不能使用Microsoft Visual C++ for Python 2.7,这是一种微软专门为Python 2.7制作的迷你编译器.在这种情况下,您需要安装与您的Python版本匹配的Visual Studio SDK,或者安装具有正确.NET框架版本的Windows SDK.有关更多信息,请参阅此处:https: //github.com/cython/cython/wiki/CythonExtensionsOnWindows#using-windows-sdk-cc-compiler-works-for-all-python-versions


Gon*_*nzo 5

这对我有用(python 2.6):

安装free ms visual studio 2008http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express

复制vcvarsall.bat"C:\Program Files\Microsoft Visual Studio 9.0\VC>""C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\"

安装程序已经设置了此环境变量:

VS90COMNTOOLS=C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\
Run Code Online (Sandbox Code Playgroud)


Cra*_*een 3

安装 Visual C++ 是一个很好的第一步,尽管我无法确定2010版本是否可以工作。不管怎样,尝试一下吧。

vcvarsall.bat在 Visual C++ 安装目录中查找(对于 Visual Studio 2010,它位于 中ProgramFiles\Microsoft Visual Studio 10.0\VC)。然后将该目录添加到系统路径中。如果您在命令行上执行此操作,您可以尝试:

path %path%;c:\path\to\vs2010\bin
Run Code Online (Sandbox Code Playgroud)

然后再次尝试运行您想要运行的任何内容。

为了更永久的效果,请将其添加到计算机系统路径设置中

  • Python 2.6、2.7、3.0、3.1 始终需要 VS2008,因为这包含它们链接到的 C 运行时的正确版本。如果您尝试将 python DLL 链接到 VS2010 附带的 C 运行时,它将无法工作。 (7认同)
  • 嘿@LarsH。Python 开发指南:[https://docs.python.org/devguide/setup.html#windows]。Windows以外的平台可以使用任何C89或C99兼容的编译器,gcc就可以。 (3认同)
  • 嘿,谢谢您的意见。实际有效的是删除 2010 版本并安装 2008 版本。更改路径不起作用。再次感谢 (2认同)