我尝试安装Python包dulwich:
pip install dulwich
但我收到了一条神秘的错误消息:
error: Unable to find vcvarsall.bat
如果我尝试手动安装软件包,也会发生同样的情况:
> python setup.py install
running build_ext
building 'dulwich._objects' extension
error: Unable to find vcvarsall.bat
我尝试安装Python包dulwich:
pip install dulwich
但我收到了一条神秘的错误消息:
error: Unable to find vcvarsall.bat
如果我尝试手动安装软件包,也会发生同样的情况:
> python setup.py install
running build_ext
building 'dulwich._objects' extension
error: Unable to find vcvarsall.bat
当前回答
我尝试了许多解决方案,但只有一个对我有效,那就是安装Microsoft Visual Studio 2008 Express C++。
我使用C语言编写的Python2.7模块(yEnc,它与MSVS有其他问题)遇到了这个问题。请注意,Python 2.7是用MS VS 2008版本构建的,而不是2010!
尽管它是免费的,但很难找到,因为MS正在推广VS 2010。尽管如此,MSDN官方非常直接的链接仍然有效:检查https://stackoverflow.com/a/15319069/2227298下载链接。
其他回答
我找到了解决方案。我也遇到了同样的问题和错误,安装“amara”。我安装了mingw32,但需要配置distutils。
我已经安装了Python 2.6。我将mingw32安装到C:\programs\mingw\将mingw32的bin目录添加到环境变量:append c:\programs\MinGW\bin;到PATH将位于C:\Python26\Lib\distutils\distutils.cfg的distutils.cfg文件编辑为:[生成]编译器=mingw32现在运行easy_install.exe amara。
确保通过打开新的cmd.exe来设置环境。
@monkey给出的答案是正确的答案之一,但不完整。
如果您想使用MinGW,您应该选择C、C++以及MinGW安装过程中建议的其他开发工具,以获得“make.exe”
您还必须在env中将路径设置为make.exe。
要完成他的回答,请执行以下步骤:
将mingw32的bin目录添加到环境变量中追加C:\Programs\MinGW\bin;C: \Programs\MinGW\msys\1.0\bin;到PATH将位于C:\Python26\Lib\distutils\distutils.cfg的distutils.cfg文件编辑(如果不存在则创建)为:[生成]编译器=mingw32
确保通过打开新的cmd.exe来设置环境变量。
我也遇到了同样的错误(我觉得这很愚蠢,而且对错误消息没有任何帮助),尽管有一个C编译器可用,我还是继续遇到问题。
令人惊讶的是,最终对我有用的只是将pip和setuptools升级到最新版本。希望这对其他人有所帮助。
我也遇到过同样的问题,所以我将在这里讲述我的故事,希望它能帮助其他人解决同样的问题并节省我刚刚花的几个小时:
我在一个windows7盒子里有mingw(g++(GCC)4.6.1)和python 2.7.3,我正在尝试安装PyCrypto。
在运行setup.py install时,这一切都以以下错误开始:
error: Unable to find vcvarsall.bat
通过将mingw指定为所选编译器,在谷歌搜索错误后轻松解决:
setup.py install build --compiler=mingw32
问题是,然后我得到了一个不同的错误:
configure: error: cannot run C compiled programs.
事实证明,我的防病毒软件阻止了新编译的.exe的执行。我刚刚禁用了防病毒“常驻屏蔽”,并转到下一个错误:
cc1.exe: error: unrecognized command line option '-mno-cygwin'
error: command 'gcc' failed with exit status 1
这解决了这个问题:“要么安装稍微旧一点的MinGW版本,要么在Python目录中编辑distutils\cygwinccompiler.py以删除-mno-cygwin的所有实例。”(从这里开始)
现在,我终于可以开始工作了。
distutils(以及一些setuptools)官方支持的MS VС++版本和安装变体的详细列表,以及如何使用它们,请访问
https://wiki.python.org/moin/WindowsCompilers
它还指定了哪个Win32 Python官方版本需要哪个VC++版本。请注意,MinGW不受官方支持(详见下文)。
简而言之:
对于每个版本,都有一个现成的特定Visual Studio版本。请注意,2012年之前的Express版本不支持x64。尝试对x64使用一个会导致未知错误。对于独立SDK,通常需要从SDK提示符(=设置环境变量)运行安装。对一些人来说,这一要求可以通过一次性调整来解除,而不会产生不利的副作用setuptools支持一些不常见的VC++版本,而不是distutils。据说MinGW“工作”,但仅适用于x86。https://bugs.python.org/issue4709表示其支持的问题在于MinGW本身,甚至自Python 3.5以来,x86也必然会出现问题。