官方不建议使用 64 bit python,容易出各种问题

Unable to find vcvarsall.bat

凡是安装与操作系统底层相关的 python 扩展都会遇到这个问题,如 PIL,Pillow,gevent 等,当然你可以直接安装编译好的,此时可能无需解决这个问题,但是你只能使用阉割版的功能

这个问题的原因大致如下:有些 python 扩展需要编译,而编译需要 visual C++,而你的电脑没有安装

这个问题有几种解决方案...

参考下面链接

亲测方法

安装 visual studio 后,在环境变量里会自动生成对应版本的配置

如果装的是VS ,是看不到出现环境变量的

对于vcvarsall.bat的探测,VS2017以前的版本,可以通过VSXXXCOMNTOOLS环境变量来发现,例如:VS140COMNTOOLS对应 VS2015
但是VS2017之后就没这个环境变量了,因此更加通用可靠的探测方式,是从注册表中查找。
例如,VS2017的注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VS7;15.0)\VC\Auxiliary\Build
VS2017之前版本路径如下:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VS7;14.0)\VC
64bits版本,Microsoft之前再加个Wow6432Node。

然后执行如下命令

Visual Studio  (VS9):  SET VS90COMNTOOLS=%VS90COMNTOOLS%
Visual Studio (VS10): SET VS90COMNTOOLS=%VS100COMNTOOLS%
Visual Studio (VS11): SET VS90COMNTOOLS=%VS110COMNTOOLS%
Visual Studio (VS12): SET VS90COMNTOOLS=%VS120COMNTOOLS%
Visual Studio (VS14): SET VS90COMNTOOLS=%VS140COMNTOOLS%

注意这个命令不是永久生效,只是临时命令,每次打开命令行都要执行一次

另外,有个简单方法 

python2 提供了对应的 vc:https://www.microsoft.com/en-us/download/details.aspx?id=44266  Microsoft Visual C++ Compiler for Python 2.7

python3 没有提供

https://www.cnblogs.com/yyds/p/7065637.html  写的很透彻

https://blog.csdn.net/sunlilan/article/details/80040858  很有用的教程

https://my.oschina.net/soarwilldo/blog/496463

https://blog.csdn.net/u011275279/article/details/73238609

https://blog.csdn.net/m0_37638031/article/details/78763956  visual studio 2015安装教程

RuntimeError: Broken toolchain: cannot link a simple C program

https://www.jianshu.com/p/7dc989dc55f0

https://www.tuicool.com/articles/JzI3Uj

windows 安装 python 踩坑记录的更多相关文章

  1. CentOS7.4安装MySQL踩坑记录

    CentOS7.4安装MySQL踩坑记录 time: 2018.3.19 CentOS7.4安装MySQL时网上的文档虽然多但是不靠谱的也多, 可能因为版本与时间的问题, 所以记录下自己踩坑的过程, ...

  2. ubuntu 下安装docker 踩坑记录

    ubuntu 下安装docker 踩坑记录 # Setp : 移除旧版本Docker sudo apt-get remove docker docker-engine docker.io # Step ...

  3. windows安装rabbitmq踩坑实录

    最近学习springcloud消息总线需要用到rabbitmq,然后安装的时候踩了一些坑,记录如下: 首先安装rabbitmq之前需要先安装erlang,因为rabbitmq服务端使用erlang写的 ...

  4. 【学习笔记】windows安装jhipster踏坑记录

    序: 入职新公司第二天了,本来第一天是配置环境来着,配了一下午也没搞成那个jhipster的安装,每次以为应该正常的时候都是不对,yo是yeoman的指令,但是我是使用yarn管理的yeoman 纠结 ...

  5. 虚拟机安装mysql踩坑记录

    本章节主要讲解的是在虚拟机centOs7版本以上安装mysql5.6版本,亲测可以直接使用,有需要帮助的小伙伴可以加本人QQ2246451792@qq.com!!!! 卸载centOs7自带的mari ...

  6. python踩坑记录篇,持续更新

    问题1:python语法错误 错误日志如下: print(a[2])    ^IndentationError: unexpected indent [解决方案]:缩进代码错误导致,将print的缩进 ...

  7. Android关于版本更新下载安装之踩坑记录(针对7.0以上)

    最近刚刚把古老的项目targetSdk版本升级到26,升级之前是19(非常非常古老了).那么升级后一些问题开始出现. Android 8.0 (Android O)为了针对一些流氓软件引导用户安装其他 ...

  8. python发布包到pypi的踩坑记录

    前言 突然想玩玩python了^_^ 这篇博文记录了我打算发布包到pypi的踩坑经历.python更新太快了,甚至连这种发布上传机制都在不断的更新,这导致网上的一些关于python发布上传到pypi的 ...

  9. 使用Windows下的git工具往github上传代码 踩坑记录

    使用Windows下的git工具往github上传代码 踩坑记录 背景 由于以前接触的项目都是通过svn进行版本控制,现在公司项目使用git,加上自己平时有一个练手小项目,趁着周末试着把项目上传到自己 ...

随机推荐

  1. 省市县镇村五级地址智能提取(标准地址源来自国家统计局官网)SpringBoot+Elasticsearch 5.6

    项目目的 根据传入的地址,智能提取所属的省市县镇村5级地址.例如:用户输入“江苏南通嗨安李堡镇陈庄村8组88号”,我们需要提取到江苏省  南通市  海安县(即便用户输入了错字,“海”写成了“嗨”) 李 ...

  2. shiro 自定义filter

    1.自定义登录filter package com.creatunion.callcenter.filter; import com.alibaba.fastjson.JSONObject; impo ...

  3. 20165213 Exp9 Web安全基础

    Exp9 Web安全基础 一.基础性问答 (1)SQL注入攻击原理,如何防御 原理:SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾 ...

  4. beta week 2/2 Scrum立会报告+燃尽图 05

    此作业要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/9957 一.小组情况 组长:贺敬文组员:彭思雨 王志文 位军营 徐丽君队名: ...

  5. Fastadmin 后台表单,外键关键,步骤

    1.在 public\assets\js\backend 目录中找到对应的js,修改 2.对应控制器中加上index()方法:开启关联查询 重点: protected $relationSearch ...

  6. Mac下搭建Vue开发环境

    认知: 注:上面的图片转自Vue2.0 新手入门 — 从环境搭建到发布 1.安装brew 打开终端运行以下命令: /usr/bin/ruby -e "$(curl -fsSL https:/ ...

  7. vmalloc详解

    vmalloc是一个接口函数, 内核代码使用它来分配在虚拟内存中连续但在物理内存中不一定连续的内存. 只需要一个参数,以字节为单位. 使用vmalloc的最著名的实例是内核对模块的实现. 因为模块可能 ...

  8. 利用Calendar类判断是平年还是闰年

    package com.bgs.Math; import java.util.Calendar; import java.util.Scanner; /*###14.21_常见对象(如何获取任意年份是 ...

  9. XSS攻击总结

    本文由 http://www.cnblogs.com/phpstudy2015-6/p/6767032.html 整理总结而来 XSS又称CSS(cross site script),译为跨站脚本攻击 ...

  10. 【.NET】关于.NET前后台提示框的那点事

    前言 关于提示框,或多或少都用到过,提示框常见方式两种:js原生alert() 和 div模拟弹层:下面以一个常见的需求业务场景来展现提示框的那点事: 正文内容 客户:需求方: 小白:实现方(全权负责 ...