我尝试安装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
当前回答
我尝试了以上所有的答案,但没有为我工作。我使用的是Windows 10,并安装了Visual Studio 2010在我的情况下,需要将vcvars64.bat添加到C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\bin\amd64
下面是vcvars64.bat:
CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
如果未安装,请安装Microsoft SDK 7.1,然后重新运行pip Install dulwich
其他回答
@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来设置环境变量。
我找到了解决方案。我也遇到了同样的问题和错误,安装“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来设置环境。
我也遇到过同样的问题,所以我将在这里讲述我的故事,希望它能帮助其他人解决同样的问题并节省我刚刚花的几个小时:
我在一个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的所有实例。”(从这里开始)
现在,我终于可以开始工作了。
对于Python 3.4,依赖于Visual Studio 2010。安装Visual C++2010 Express为我解决了这个问题。
欺骗它使用VS 2008或2013安装,而我碰巧没有使用。
更新:评论指出,此处的说明可能很危险。请考虑使用Visual C++2008速成版或专门构建的Microsoft Visual C++编译器Python版(详细信息),不要使用下面的原始答案。原始错误消息表示未安装所需版本的Visual C++。
对于Windows安装:
在为包安装运行setup.py时,Python 2.7会搜索已安装的Visual Studio 2008。通过在调用setup.py之前在VS90COMNTOOLS环境变量中设置正确的路径,可以诱骗Python使用较新的Visual Studio。
根据安装的Visual Studio版本执行以下命令:
Visual Studio 2010(VS10):SET VS90COMNTOOLS=%VS100COMNTOOLS%Visual Studio 2012(VS11):SET VS90COMNTOOLS=%VS110COMNTOOLS%Visual Studio 2013(VS12):SET VS90COMNTOOLS=%VS120COMNTOOLS%Visual Studio 2015(VS14):SET VS90COMNTOOLS=%VS140COMNTOOLS%
警告:如下所述,如果您试图编译python模块,则此答案不太可能奏效。
有关详细信息,请参阅在Windows上为Python 2.7构建lxml。