我尝试安装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

当前回答

distutils(以及一些setuptools)官方支持的MS VС++版本和安装变体的详细列表,以及如何使用它们,请访问

https://wiki.python.org/moin/WindowsCompilers

它还指定了哪个Win32 Python官方版本需要哪个VC++版本。请注意,MinGW不受官方支持(详见下文)。

简而言之:

对于每个版本,都有一个现成的特定Visual Studio版本。请注意,2012年之前的Express版本不支持x64。尝试对x64使用一个会导致未知错误。对于独立SDK,通常需要从SDK提示符(=设置环境变量)运行安装。对一些人来说,这一要求可以通过一次性调整来解除,而不会产生不利的副作用setuptools支持一些不常见的VC++版本,而不是distutils。据说MinGW“工作”,但仅适用于x86。https://bugs.python.org/issue4709表示其支持的问题在于MinGW本身,甚至自Python 3.5以来,x86也必然会出现问题。

其他回答

以下步骤为我解决了这个问题,我正尝试使用cython扩展创建设置。

安装Microsoft Visual C++编译器Python 2.7版默认安装位置为@C: \Users\PC user\AppData\Local\Programs\Common\Microsoft\Visual C++对于Python这实际上可能会解决问题,请在继续之前测试一次。如果失败,请检查VC中的位置++对于python,vcvarsall.bat文件位于打开msvc9compiler.py记事本中distutils包的文件。在我的箱子里@C: \Anaconda2\Lib\distutils\msvc9compiler.py find_vcvarsall函数在此文件中,通过打印版本来确定VC的版本论点对于Python 2.7,可能是9.0现在创建一个环境变量VS90COMNTOOLS,指向C: \Users\PC user\AppData\Local\Programs\Common\Microsoft\Visual C++用于Python\9.0\VC\bin出于某种原因,distutils期望vcvarsall.bat文件应位于VCdir中,但对于python工具则为VC++它位于9.0的根目录中。要解决此问题,请从path.join(大致围绕第247行)#productdir=os.path.join(toolsdir,os.pardir,os.pardir,“VC”)productdir=os.path.join(toolsdir,os.pardir,os.pardir)

以上步骤为我解决了问题。

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

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

distutils(以及一些setuptools)官方支持的MS VС++版本和安装变体的详细列表,以及如何使用它们,请访问

https://wiki.python.org/moin/WindowsCompilers

它还指定了哪个Win32 Python官方版本需要哪个VC++版本。请注意,MinGW不受官方支持(详见下文)。

简而言之:

对于每个版本,都有一个现成的特定Visual Studio版本。请注意,2012年之前的Express版本不支持x64。尝试对x64使用一个会导致未知错误。对于独立SDK,通常需要从SDK提示符(=设置环境变量)运行安装。对一些人来说,这一要求可以通过一次性调整来解除,而不会产生不利的副作用setuptools支持一些不常见的VC++版本,而不是distutils。据说MinGW“工作”,但仅适用于x86。https://bugs.python.org/issue4709表示其支持的问题在于MinGW本身,甚至自Python 3.5以来,x86也必然会出现问题。

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

如果需要此编译器包,您将收到的典型错误消息是Unable to find 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它帮助了我