我尝试安装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在您的安装中)。

其他回答

我遵守了指示http://springflex.blogspot.ru/2014/02/how-to-fix-valueerror-when-trying-to.html.但什么都没发生。然后我安装了2010 Visual Studio Express(http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express)遵循建议http://blog.python.org/2012/05/recent-windows-changes-in-python-33.html它帮助了我

也许有人会感兴趣,下面的内容适用于py2exe包。(我有windows 7 64位和可移植python 2.7,Visual Studio 2005 Express以及windows 7和.NET Framework 4的windows SDK)

set VS90COMNTOOLS=%VS80COMNTOOLS%

那么:

python.exe setup.py install

我找到了一个更简单的方法。只需从网站下载二进制文件包:http://www.lfd.uci.edu/~gohlke/pythonlibs'例如:autopy3‑0.51.1‑cp36‑cp36m‑win32.whl(cp36表示Python 3.6)下载它并通过pip安装文件的位置

我不知道是否为时已晚,但我找到了Microsoft Visual C++Compiler for Python 2.7,该版本

如果需要此编译器包,您将收到的典型错误消息是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下载链接。