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

其他回答

看起来它正在寻找VC编译器,所以您可以尝试使用-c mingw32提及编译器类型,因为您有msys

python setup.py install -c mingw32

您可以从下载免费的Visual C++2008速成版http://go.microsoft.com/?linkid=7729279,它将在安装期间设置VS90COMNTOOLS环境变量,因此使用兼容的编译器进行构建。

正如@PiotrDobrogost在一篇评论中提到的,他对另一个问题的回答详细说明了为什么Visual C++2008是正确的构建工具,但随着Windows版本的Python迁移到Visual Studio的更新版本,这一点可能会发生变化:在Windows上为Python 2.7构建lxml

我遵守了指示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它帮助了我

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

我也遇到了同样的问题,现在已经解决了。

“谷歌”告诉我,我需要安装“Microsoft Visual C++编译器Python 2.7版”。我不仅安装了该工具,还安装了Visual C++2008 Reditributable,但无济于事。然后我尝试安装Visual C++2008速成版。问题已经解决了!

只需尝试安装Visual C++2008速成版!