5

我使用刚刚提供的链接安装了分发点子。我还安装了Microsoft Visual C++ 2008 可再发行包。但是,当我尝试使用 pip.exe 时,我得到了

error: Unable to find vcvarsall.bat

我怎样才能解决这个问题?

4

4 回答 4

12

安装 Microsoft Visual C++ 2008 Redistributable Package 不足以编译包。您需要安装编译器,而不仅仅是支持文件。

有三种方法可以做到这一点:

  1. 安装 Visual C++。
  2. 使用 mingw 的 gcc 端口而不是 Visual C++。
  3. 使用 cygwin 的 gcc 端口而不是任何一个,并在 Python 上构建 cygwin 而不是本机。

如果您想使用选项 1,则需要安装 Visual C++ 本身。免费版本应该和付费版本一样工作,只要你不打算构建二进制包来重新分发给其他人。不幸的是,我不确定在哪里可以找到 2008 版本了。截至 2013 年 5 月,下载页面只有 2010 年和 2012 年。

当您安装它时,它将创建一个名为vcvarsall.bat(不是vcvarshall.bat!)的批处理文件,并为您提供将该批处理文件放入 PATH 的选项。运行该批处理文件会设置一个 DOS 提示符,以便使用该版本的 Visual C++ 进行构建。(如果您有多个版本的 Visual C++ 或其他编译器,这很方便。)如果您跳过该选项,您将不得不手动进行。

这个问题展示了如何将较新的 Visual Studio 与较旧的 Python 一起使用,还展示了如何将 distutils 指向vcvarsall.bat不在您的 PATH 上的文件,并提供指向许多其他相关问题和博客文章的链接。


许多人发现选项 2 更简单。安装mingw,修改环境中的 PATH 以包含C:\MinGW\bin(或您选择安装它的任何位置),并-c mingw32在您运行setup.py脚本时传递。

问题是它没有清楚地记录如何告诉easy_installpip使用 mingw 而不是 VC++。为此,您需要找到或创建一个distutils.cfg文件,在其中找到或创建一个[build]部分,然后添加compiler=mingw32. 不是太难。这篇博文看起来很好地解释了事情,或者看到这个答案


选项 3 是迄今为止最简单的。安装cygwin,告诉它安装 Python 和 gcc 包,你就完成了。

问题是你没有原生的 Windows Python,你有一个在 Windows 之上的假 Unix 环境中运行的 Unix Python。如果你喜欢 Cygwin,你会喜欢这个;否则,你不会。

于 2013-05-14T20:42:17.377 回答
4

只有具有CPython扩展的包(或包的依赖项之一)才会收到此类错误。内部点:

  • 下载源
  • 运行distutils python setup install
  • install准备安装文件并尝试在Windows环境中构建CPython扩展
  • windows 环境调用 MS Visual Studiovcvarsall.bat脚本,该脚本设置 DOS 环境变量以在 shell 中启用 MS Visual Studio 的 C 编译器
  • 如果vcvarsall.bat未找到 - 您将收到此消息

通常的解决方案

对于具有可在 Windows 上移植的CPython扩展的Python 库,通常具有Windows 二进制包,可从 pypi 或库网站下载。

在这种情况下,通过下载和运行 windows binary package来安装库更合适(并且无痛)。

有一个功能请求添加pip在 Windows 上安装二进制 distutils 包的支持

新方法——轮子

感谢@warren-p 的评论:该功能请求已被 PIP 中的 Wheels 支持所取代。

官方描述:轮子是一个 ZIP 格式的档案,具有特殊格式的文件名和 .whl 扩展名。

据我了解,如果有扩展名为 .whl 的 Windows 二进制包,那么首先安装轮子:

# Make sure you have the latest pip that supports wheel
pip install --upgrade pip
pip install wheel  

然后像这样安装.whl:

pip install full-path-or-url-to-your-library.whl

参考:

于 2013-05-18T22:15:01.433 回答
0

您可以从以下位置下载 Visual Studio 2008 Express SP1

http://visual-studio-2008.en.malavida.com/

您可以取消选择它提供的两个添加到浏览器选项。

于 2013-05-18T21:51:37.320 回答
0

我在 microsoft.com 上发现这些链接仍然可以安装 Visual C++。

http://download.microsoft.com/download/8/B/5/8B5804AD-4990-40D0-A6AA-CE894CBBB3DC/VS2008ExpressENUX1397868.iso

2008 SP1 在这里

http://download.microsoft.com/download/E/8/E/E8EEB394-7F42-4963-A2D8-29559B738298/VS2008ExpressWithSP1ENUX1504728.iso

于 2013-08-05T15:34:11.493 回答