在“找不到 vcvarsall.bat”错误之后,用于 pip 的 MinGW 编译器仍然无法正常工作

Posted

技术标签:

【中文标题】在“找不到 vcvarsall.bat”错误之后,用于 pip 的 MinGW 编译器仍然无法正常工作【英文标题】:MinGW compiler for pip after "cannot find vcvarsall.bat" error, still does not work 【发布时间】:2014-11-12 04:14:10 【问题描述】:

所以我尝试这样做:

pip install pycrypto --upgrade

这导致我出错:

Cannot find "vcvarsall.bat"

这导致我找到了这个解决方案:How to use MinGW's gcc compiler when installing Python package using Pip?

所以我创建了一个 distutils.cfg,现在 pip 使用 MinGW。

但我仍然收到错误:

error: command 'C:\\Program Files\\Cygwin\\bin\\gcc.exe' failed with exit status 1

请帮忙。

我有一个安装日志的链接:https://dpaste.de/NhV9

我正在使用 Windows 7 64 位、据我所知最新的 MinGW 和 python 2.7。

【问题讨论】:

【参考方案1】:

如果您使用的是来自 python.org 的 Python 2.7,您可以尝试Microsoft Visual C++ Compiler for Python 2.7:

此包包含为 Python 2.7 包生成二进制***所需的编译器和一组系统头文件。

【讨论】:

我安装了它,但我仍然得到 Unable to find vcvarsall.bat @MattM 使用这个 VC 编译器的简单方法是使用 VC 开始菜单组中的正确命令提示符,然后导航到您的工作文件夹。【参考方案2】:

我已成功使用 MinGW pip installed pycrypto,因此您可能只是缺少 Visual C++ 可再发行包 [1]。

也就是说,您可以改用easy_install pycrpyto,它将下载并安装二进制版本。

[1]http://www.microsoft.com/en-us/download/details.aspx?id=29

【讨论】:

嗯...可能是因为您使用的是 64 位? Voidspace 有 64 位二进制文​​件[1],您可能想查看 [1] voidspace.org.uk/python/modules.shtml#pycrypto 这是我最初使用的,但它没有最新的二进制文件,这就是我更喜欢编译更新的原因。【参考方案3】:

您的 cygwin 设置似乎没有正确配置 gcc 编译器。我会先看那里,因为它是实际的编译错误而不是缺少的编译器。

*** 这是您自己粘贴的一行。

C:\Program Files\Python27\include/pyport.h:886:2: error: #error "LONG_BIT 定义对于平台来说似乎错误(错误的 gcc/glibc 配置?)。"

错误“平台的 LONG_BIT 定义出现错误(错误的 gcc/glibc 配置?)。”


这个错误纯粹是因为 configure 运行后的错误配置,这将指向 cygwin 的 gcc 配置不正确。

找到编译器并尝试构建源代码,因此问题不是找不到 vc 可再发行组件。

【讨论】:

以上是关于在“找不到 vcvarsall.bat”错误之后,用于 pip 的 MinGW 编译器仍然无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

找不到 vcvarsall.bat 文件 [重复]

找不到 vcvarsall.bat [重复]

Python Pip 安装错误:找不到 vcvarsall.bat。尝试了所有解决方案[重复]

找不到 vcvarsall.bat

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

构建 boost 1.65.0:找不到 vcvarsall.bat