【问题标题】:error: Unable to find vcvarsall.bat错误:无法找到 vcvarsall.bat
【发布时间】:2011-02-18 13:25:40
【问题描述】:

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

【问题讨论】:

  • 为了将来参考,看看你在什么平台上使用它会很高兴。
  • 如果您认为这是一条非常神秘且无用的错误消息,请在bugs.python.org/issue2943 为该错误投票
  • 微软现在提供解决方案:microsoft.com/en-us/download/details.aspx?id=44266
  • @MartijnPieters 我尝试下载并安装您使用 wheel 和 setuptools 7.0 提供的链接,但它不起作用我收到消息:C:\Users\User\libfreenect\wrappers\python>python setup.py installrunning install running build running build_ext building 'freenect' extension error: Unable to find vcvarsall.bat
  • Steve Dower(微软 Python 团队的一个人)写了一篇关于这个主题的博文,值得一读:blogs.msdn.microsoft.com/pythonengineering/2016/04/11/…

标签: python windows pip setup.py failed-installation


【解决方案1】:

@monkey 给出的答案是正确的答案之一,但不完整。

如果你想使用MinGW,你应该选择在MinGW安装过程中建议的C、C++和其他开发工具来获得“make.exe”。

您还必须将路径设置为环境中的 make.exe。

要完成他的回答,步骤如下:

  1. 将 mingw32 的 bin 目录添加到您的环境变量中
  2. C:\Programs\MinGW\bin;C:\Programs\MinGW\msys\1.0\bin; 附加到路径
  3. 编辑(如果不存在则创建)位于C:\Python26\Lib\distutils\distutils.cfgdistutils.cfg 文件为:

    [build]
    compiler=mingw32
    

确保通过打开新的 cmd.exe 设置环境变量。

【讨论】:

  • 32 位 python 模块应使用 32 位 mingw 编译,而 64 位 python 模块应使用 64 位 mingw 编译。在 Cygwin 64 位上,有 2 个 mingw 可执行文件可用:x86_64-w64-mingw32-gcci686-w64-mingw32-gcc。这些可执行文件显然与您通常从 Mingw 获得的可执行文件相同(只是在 Cygwin 环境中编译)。
【解决方案2】:

尽管有可用的 C 编译器,但我遇到了同样的错误(我觉得这很愚蠢,而且对错误消息没有任何帮助)并且继续遇到问题。

令人惊讶的是,最终对我有用的只是将 pip 和 setuptools 升级到最新版本。希望这对其他人有帮助。

【讨论】:

    【解决方案3】:

    最快的解决方案

    如果你有 python 3.4.x,解决方法就是安装 VC++ 2010 因为它是用来自己编译进去的。

    https://www.visualstudio.com/en-us/downloads#d-2010-express

    我的 python 版本是 MSC v.1600 32 bit (intel)] on win32

    在 Windows8 上运行良好

    【讨论】:

      【解决方案4】:

      去这里:http://docs.continuum.io/anaconda/install.html#windows-install

      http://www.scipy.org/ 提供了安装 anaconda 的说明,该说明将提供 GUI 并静默安装大多数似乎导致此问题的软件包。我知道这里的 2.7 解决方案 https://www.microsoft.com/en-us/download/details.aspx?id=44266 但我没有看到 Python 3.4 的选项。下载并安装 Anaconda 后,您应该能够从 scipy 导入大部分所需的包。

      希望这对某些人有所帮助。我花了 45 分钟搜索帖子和网站。

      编辑:只是想注意在操作系统符号旁边的 GUI 页面上有一个 Python34 链接。

      【讨论】:

        【解决方案5】:

        https://www.visualstudio.com 安装 Visual Studio 2015 社区版, 那么

        适用于 Python 3.4

        set VS100COMNTOOLS=%VS140COMNTOOLS% && pip install XX

        【讨论】:

          【解决方案6】:

          我尝试了上述所有答案,但对我不起作用。 我使用的是 Windows 10 并安装了 Visual Studio 2010 就我而言,需要将vcvars64.bat 添加到C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64

          下面是vcvars64.bat:

          CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
          

          如果没有安装,请安装Microsoft SDK 7.1,然后重新运行pip install dulwich

          【讨论】:

            【解决方案7】:

            【讨论】:

              【解决方案8】:

              我在windows 10中安装pandas时遇到了同样的错误。搜索了几个解决方案后,我最终使用了轮子。

              首先,将 pip 升级到最新版本:

              easy_install install -U pip
              

              二、安装轮子:

              pip install wheel
              

              第三,下载你的包的whl文件并安装:

              pip install [xxx].whl
              

              到目前为止,我认为 Wheel 是在 Windows 上安装 Python 包的最佳方式。

              【讨论】:

                【解决方案9】:

                http://www.stickpeople.com/projects/python/win-psycopg/

                从上面的链接安装适当的文件解决了我的问题。

                提及:杰森·埃里克森 [jerickso@stickpeople.com]。他为 Windows 用户很好地管理了这个页面。

                【讨论】:

                  【解决方案10】:

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

                  【讨论】:

                    【解决方案11】:

                    我没有看到任何使用 vswhere 的答案,我认为这是自 Visual Studio 15.2 以来的正确方法。

                    这是我运行 vsvars64.bat 的方式(我猜这与 vsvarsall 类似)

                    def init_vsvars():
                        cprint("")
                        cprint_header("Initializing vs vars")
                        vswhere_path = r"%ProgramFiles(x86)%/Microsoft Visual Studio/Installer/vswhere.exe"
                        vswhere_path = path.expandvars(vswhere_path)
                        if not path.exists(vswhere_path):
                            raise EnvironmentError("vswhere.exe not found at: %s", vswhere_path)
                    
                        vs_path = common.run_process(".", vswhere_path,
                                                     ["-latest", "-property", "installationPath"])
                        vs_path = vs_path.rstrip()
                    
                        vsvars_path = os.path.join(vs_path, "VC/Auxiliary/Build/vcvars64.bat")
                        # common.run_process(".", vsvars_path, [])
                        os.system('"%s"' % vsvars_path)
                    

                    run_process 做了很多事情,但基本上可以归结为:

                        output = ""
                        process = subprocess.Popen(
                            commandline,
                            stdout=subprocess.PIPE,
                            stderr=subprocess.STDOUT,
                            universal_newlines=True)
                        for stdout_line in iter(process.stdout.readline, ""):
                            cprint(stdout_line)
                            output += stdout_line
                        process.stdout.close()
                    
                        return_code = process.wait()
                        return output
                    

                    【讨论】:

                      【解决方案12】:

                      这里给出了这个问题的最佳和详尽的答案:https://blogs.msdn.microsoft.com/pythonengineering/2016/04/11/unable-to-find-vcvarsall-bat/

                      在大多数情况下,为所需的 python 依赖项找到合适的 .whl 包并使用 pip 安装就足够了。

                      在最后一种情况下,您必须安装 microsoft 编译器并从源代码安装包。

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 1970-01-01
                        • 2013-11-18
                        • 2018-10-29
                        • 2016-04-04
                        相关资源
                        最近更新 更多