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安装:
在运行setup.py进行软件包安装时,Python 2.7会搜索已安装的Visual Studio 2008.您可以通过VS90COMNTOOLS在环境变量中设置正确的路径来欺骗Python使用较新的Visual Studio setup.py。
根据安装的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%
我找到了解决方案。我有完全相同的问题,并且错误,安装'amara'。我安装了mingw32,但需要配置distutils。
1. 我已经安装了Python 2.6。
2. 我安装了mingw32 C:\programs\mingw\
3. 将mingw32的bin目录添加到环境变量:追加c:\programs\MinGW\bin;到PATH
4. 编辑(创建,如果不存在)distutils.cfg文件位于C:\Python26\Lib\distutils\distutils.cfg:
5.
compiler=mingw32
6. 现在运行easy_install.exe amara。
确保通过打开新设置来设置环境cmd.exe。
可以安装这个版本http://www.lfd.uci.edu/~gohlke/pythonlibs/ 这是怎么回事?Python模块可以用C或C ++编写(通常用于加快速度)。如果您尝试使用Pip(或setup.py)安装此类软件包,则必须从源代码编译C / C ++。开箱即用,Pip假设您安装了Microsoft Visual C ++编译器。如果你没有它,你会看到这个神秘的错误消息“错误:无法找到vcvarsall.bat”。
解决方案是安装C / C ++编译器,Microsoft Visual C ++或MinGW(开源项目)。但是,安装和配置任何一个都非常困难。(编辑2014:微软已经为Python 2.7 发布了一个特殊的C ++编译器)
最简单的解决方案是使用Christoph Gohlke的Windows安装程序(.msi)来获得流行的Python包。他为Python 2.x和3.x,32位和64位构建安装程序。您可以从http://www.lfd.uci.edu/~gohlke/pythonlibs/下载它们
________________________________________
Ruby附带了一个包管理器Gem,并提供了一个准官方的C / C ++编译器DevKit。从http://rubyinstaller.org/downloads下载DevKit 并按照http://github.com/oneclick/rubyinstaller/wiki/Development-Kit上的说明进行操作
您需要安装Microsoft编译器,与用于构建Python的编译器兼容。这意味着您需要Visual C ++ 2008(或者更新,需要一些调整)。
微软现在提供一个捆绑的编译器和头只能够编译Python扩展,在好记的网址:
用于Python 2.7的Microsoft Visual C ++编译器
http://aka.ms/vcpython27
这是一个相对较小的包; 下载85MB,无需管理员权限即可安装,无需重启。这个名称有点误导,编译器适用于最初使用Visual C ++ 2008编译的任何Python版本,而不仅仅是Python 2.7。
如果您启动Python交互式提示或打印sys.version,请查找MSC版本字符串; 如果是,
Microsoft已经发布了Python 2.7的编译器包,使人们可以更轻松地在Windows上构建和分发C扩展模块。用于Python 2.7的Microsoft Visual C ++编译器(也称为VC9)可从以下网址获得:http://aka.ms/vcpython27
该软件包包含为Python 2.7 32位和64位构建C扩展模块所需的所有工具和头文件(请注意,某些扩展模块需要第三方依赖项,如OpenSSL或libxml2,不包括在内)。还支持使用Visual C ++ 2008构建的其他Python版本,因此“Python 2.7”只是广告 - 它可以在2.6和3.2下正常工作。
请注意,您需要安装setuptools6.0或更新版本(在下载页面的系统要求中列出)。您正在安装的项目必须使用setuptools.setup(),distutils否则自动检测将无法使用。
Microsoft已声明他们希望保持URL稳定,以便自动脚本可以轻松地引用它
我遇到了同样的问题,希望它可以帮助其他人解决同样的问题,并节省他们几个小时:
我在Windows 7的框中有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 2.73和Windows 7.对我有用的解决方案是:
1. 新增的mingw32的bin目录到环境变量:追加PATH与C:\programs\mingw\bin;
2. 创建的distutils.cfg位于C:\Python27\Lib\distutils\distutils.cfg包含:
3.
compiler=mingw32
要处理MinGW不再识别-mno-cygwin标志,请删除C:\ Python27 \ Lib \ distutils \ cygwincompiler.py第322行到第326行中的标志,因此它看起来像这样:
self.set_executables(compiler='gcc -O -Wall',
compiler_so='gcc -mdll -O -Wall',
compiler_cxx='g++ -O -Wall',
linker_exe='gcc',
linker_so='%s %s %s'
% (self.linker_dll, shared_option,
entry_point))
查看setup.py您要安装的软件包的文件。如果它是较旧的包,则可能是导入distutils.core.setup()而不是setuptools.setup()。
我参与了这个(2015年)这些因素的组合:
1. 来自http://aka.ms/vcpython27的Microsoft Visual C ++编译器for Python 2.7
2. 一个较旧的包使用 distutils.core.setup()
3. 尝试做python setup.py build而不是使用pip。
如果你使用最新版本的pip,它会强制(monkeypatch)包使用setuptools,即使它setup.py调用了distutils。但是,如果您不使用pip,而只是正在执行python setup.py build,则构建过程将使用distutils.core.setup(),而不知道编译器安装位置。
看起来它正在寻找VC编译器,因此您可以尝试提及编译器类型-c mingw32,因为您有msys
python setup.py install -c mingw32
页:
[1]