解决Unable to find vcvarsall.bat问题

目录

  • 前言
  • 方法1
  • 方法2
  • 前言

    用Windows平台做Python开发时,难免会遇到Unable to find vcvarsall.bat错误。我在网上疯搜了一段时间之后,才找到解决办法。(还是两个,不想装VS的朋友可以用第二个)

    方法1

    大家所熟知的——下载对应版本的VS(注意,一定不要盲目下载最新版本!因为你的Python可能不支持!!)。不知道用什么版本?没关系,在Python安装路径\Lib\distutils下有一个msvc9compiler.py文件,看名字就能知道这玩意儿跟VC有关。里面能找到一个get_build_version函数。我们在IDLE里输入这些指令:

    >>> from distutils.msvc9compiler import get_build_version
    >>> get_build_version()
    

    返回值就是VC编译器的版本。这里要感谢@YZF_Kevin,他这边有一张表格,大家可以在这里面找。
    (原文链接:https://blog.csdn.net/yzf279533105/article/details/53677300)
    补充:VS2022对应VC17.0。

    知道了版本,安装后还是没能解决问题。为什么?这里有一点很坑,因为get_vcvarsall函数他不是从系统中直接搜索,也不是从Path里面找。而是用注册表
    在读接下来的文章时,有一个注意事项:注册表VisualStudio文件夹下并不一定是9.0,而是你VC的版本号(比如14.0这样的)。
    (感谢@宅教授的文章https://blog.csdn.net/donger_soft/article/details/44838109)

    OK,成功。

    方法2

    众所周知,VS十分的庞大。所以我又翻出了一个不用VS的方法:使用Anaconda。不用担心版本问题,除非你Python版本低于2.7,2.7版本Anaconda3也支持的。
    Anaconda是一个集成的Python开发环境,里面有很多有用的包,pip、conda都有。安装Anaconda后(记得勾选Add to path),打开Anaconda控制台,新建一个环境。
    (感谢@宇内虹游https://blog.csdn.net/weixin_39278265/article/details/82982937)
    conda create -n 自定义环境名 python=你的Python版本
    如果是32位,需要输入:
    (感谢@高处欲乘风https://blog.csdn.net/lemon4869/article/details/107486881)
    set CONDA_FORCE_32BIT=1
    改回64位,只需将1改成0就行了。
    这里有一个小提示:打开环境之后,先输入Python验证一下root环境是否和你的Python版本相符。如果相符,上面一步和下一步就不用做了,直接跳到最后一步。
    如果不相符,你还要再输入一行指令:
    conda activate 你刚才创建的环境名
    最后一步,也是最关键的一步!输入:
    conda install libpython
    conda会提示是否安装,输入y,显示成功。在conda提示符下干你想干的事就不用担心Unable to find vcvarsall.bat啦!

    来源:MATT1130

    物联沃分享整理
    物联沃-IOTWORD物联网 » 解决Unable to find vcvarsall.bat问题

    发表评论