我尝试安装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上使用Python 2.7运行pysph,但没有找到vcvarsall.bat(来自distutils)
我的解决方案如下:
安装Microsoft Visual C++for Python 2.7(如@Michael建议的那样)
在Windows 10上,它安装到(我的用户名是Andreas):
C:\Users\Andreas\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0
将环境变量VS90COMNTOOLS设置为Visual C++for Python 2.7的安装路径(请参见上面的路径)。
如果仍然不起作用,则在模块中进行修改
C:/Python27/lib/distutils
文件msvc9compiler.py。在其中查找函数Find_vcvarsall并执行以下修改。
更换管路:
productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC")
with
productdir = os.path.join(toolsdir)
在我的案例中,这就是vcvarsall.bat所在的位置(请检查,vcvarsall.bat在您的安装中)。
其他回答
2016年解决这一问题的最简单方法是安装Chocolatey,然后安装vcpython27包。打开Powershell:
> iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
> choco install python2 -y
> choco install vcpython27 -y
对于Python 3.4,依赖于Visual Studio 2010。安装Visual C++2010 Express为我解决了这个问题。
欺骗它使用VS 2008或2013安装,而我碰巧没有使用。
我也遇到了同样的错误(我觉得这很愚蠢,而且对错误消息没有任何帮助),尽管有一个C编译器可用,我还是继续遇到问题。
令人惊讶的是,最终对我有用的只是将pip和setuptools升级到最新版本。希望这对其他人有所帮助。
我找到了解决方案。我也遇到了同样的问题和错误,安装“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来设置环境。
我花了将近2天的时间来研究如何在我的python 3.4 64位版本中解决这个问题:python 3.4.3(v3.4.3:9b73f1c3e601,2015年2月24日,22:44:40)[MSC v.1600 64位(AMD64)]
解决方案1,硬:(在阅读之前,先阅读下面的解决方案2)最后,这是帮助我的:
安装Visual C++2010学习版安装Microsoft Windows SDK v7.1 for Windows 7在C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\bin\amd64中手动创建vcvars64.bat文件,该文件包含CALL“C:\Program Files\Microsoft SDK \Windows\v7.1\bin\SetEnv.cmd”/x64或其他路径,具体取决于安装位置(这似乎是可选的)安装Microsoft Visual Studio 2010 Service Pack 1以及针对Windows SDK 7.1的Microsoft Visual C++2010 Service Pack 2编译器更新之后,我尝试pip安装numpy,但收到以下错误:get_mathlib_info中的文件“numpy\core\setup.py”,第686行raise RuntimeError(“断开的工具链:无法链接简单的C程序”)运行时错误:工具链断裂:无法链接简单的C程序我在C:\Python34\Lib\distutils\msvc9compiler.py中将mfinfo更改为Nonehttps://stackoverflow.com/a/23099820/4383472最后,在pipinstallnumpy命令之后,我的avast防病毒软件试图干扰安装过程,但我很快禁用了它
花了很长时间——numpy编译了几分钟,我甚至认为有错误,但最终一切都正常。
解决方案2,简单:(我知道这一方法已经在一个高投票率的答案中被提及,但让我重复一遍,因为它确实更容易)在经历了所有这些工作之后,我明白了对我来说最好的方法就是使用来自http://www.lfd.uci.edu/~gohlke/pythonlibs/未来。有一个很小的机会,我将永远需要一些包(或包的版本),而这个网站不包含。这样安装过程也快得多。例如,要安装numpy:
donwload numpy‑1.9.2+mkl‑cp34‑none‑win_amd64.whl(如果您有Python 3.4 64位)在命令提示符或powershell中,使用pip pip install numpy‑1.9.2+mkl‑cp34‑none‑win_amd64.whl(或文件的完整路径,具体取决于命令提示符的打开方式)进行安装