文档章节

windows上,python安装非官方包,提示error: Unable to find vcvarsall.bat

l
 lykops
发布于 2017/08/12 02:31
字数 1039
阅读 1
收藏 0

在windows机器上安装python非官方包,如果环境只是用于开发,不作任何测试的话,最好的解决办法是:

在Linux上pip安装好之后,把python根目录lib/python3.6/site-packages/下载到windows机器上的python目录lib/python3.6/site-packages/下,就可以了。



1.windows上做Python开发,搭环境还真不比Linux容易。error: Unable to find vcvarsall.bat这个错误眼熟吧?

凡是安装和操作系统底层密切相关的Python扩展,几乎都会遇到这个错误。比如PIL, Pillow(两个图形库),greenlet以及其基础之上的eventlet, gevent微线程并发库等等。当然了有一些情况下,你不必彻底解决它,你可以选择windows版本,那么也就只能使用阉割版功能。

PIL有windows版,即使安装上了,64位Python一定报错 The _imaging C module is not installed, 除非自己重新编译安装。此外与CPU位数可能有关系,仅个人猜测。本人两个机器都是Win7旗舰版64位,安装的32位Python,其中一个CPU是64位的也遇到这个错误,32位的CPU则不报错。

为了解决64位CPU报错,于是安装Pillow的windows版,确实能正常使用,不再报错。但是图片效果极不理想,图片里面用到font就悲剧,出个验证码的图片都难以辨认。

greenlet也可以安装windows版,有可能报错加载动态链接库失败,比如”ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。“不幸我也遇到了。


2.windows安装使用这些偏底层的Python扩展太不爽了,怎么彻底解决 error: Unable to find vcvarsall.bat 呢?

    1.不要按网上说的,安装MinGW,然后在“..python安装路径...\Lib\distutils”下新建一个文件distutils.cfg,在这文件里面指定编译器为mingw32

       如:

[build] compiler=mingw32
    原因是什么,可以百度一下mingw是什么,毕竟不是GCC,又不如VC接windows的地气,编译出来的东西,安装上了也有不好使的时候。甚至我遇到MinGW还无法编译greenlet0.4.1,导致greenlet无法源码安装。MinGW经常 command 'gcc' failed with exit status 1 或者 error: unrecognized command line option '-mno-cygwin'。即使编译通过了,安装上了, 你安装的Python标准库不是由mingw编译的,你的扩展包却是mingw编译的,谁也不敢保证完全兼容或者说质量跟得上,说不准一些莫名其妙的神经质错误。


     2.去下载安装VS2010(08版貌似也行,不过没必要用旧版,指不定哪个库又无法编译),给个地址(百度的云盘  国内应该速度可以)

http://pan.baidu.com/share/link?shareid=1609273194&uk=3255422755

   然后注意这一步很重要:命令行下执行 SET VS90COMNTOOLS=%VS100COMNTOOLS%

   如果你安装的是 2012 版 SET VS90COMNTOOLS=%VS110COMNTOOLS%

   如果你安装的是 2013版 SET VS90COMNTOOLS=%VS120COMNTOOLS%

   或者更暴力,直接配置系统环境变量 VS90COMNTOOLS指向 %VS你的版本COMNTOOLS%

   你还可以更暴力,在“..python安装路径...\Lib\distutils目录下有个msvc9compiler.py找到243行  

                  toolskey = "VS%0.f0COMNTOOLS" % version   直接改为 toolskey = "VS你的版本COMNTOOLS"(这个就是为什么要配 ”VS90COMNTOOLS“ 的原因,因为人家文件名都告诉你了是  Microsoft vc 9的compiler,   代码都写死了要vc9的comntools,就要找这个玩意儿,找不到不干活)

   这么做的理由是Python2。7 扩展包是可以用08版或者更高的VS编译的,其setup.py(安装脚本)都是去windows系统寻找08版的VS,所以设置VS90的path

   如果Python版本小于2.7,强烈建议使用 VS08版,用2010或者更高可能部分扩展不好使。给个例子:

    http://stackoverflow.com/questions/6551724/how-do-i-point-easy-install-to-vcvarsall-bat    这个例子说明 VS2010不适合Python2.6


    3.安装VS后该重启的重启,clean一下之前安装Python扩展失败的残留文件,然后 直接下载 pil   pillow greenlet  eventlet等源码,解压后python setup.py build发现都可以编译了。接下来就换成 python setup.py install安装吧。

本文转载自:http://blog.csdn.net/liyingke112/article/details/70234036

共有 人打赏支持
l
粉丝 2
博文 297
码字总数 7445
作品 2
深圳
运维
私信 提问
python Visual C++ 9.0 is required解决方案

error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it … 解决方案 python通过pip或者源码来安装某些模块时,这些模块包含有c/c++源码,安装过程会调用本地...

元谷
2018/06/28
0
0
win 64位系统安装带有c编写的python模块出现ValueError: [u'path']解决

关于win 64位机器安装Scrapy的问题:http://steamforge.net/wiki/index.php/HowtoInstallScrapyin64-bitWindows_7 在安装Scrapy是要安装一系列的依赖模块, 出现问题: 1、error: Unable to ...

Nob
2014/09/30
0
0
[python] windows 下安装 scrapy报错:error: Unable to fin

[python] windows 下安装 scrapy报错:error: Unable to fin 米豆网2017-12-113 阅读 pythonscrapy 在windows 下通过pip install scrapy 时报错:error: Unable to find vcvarsall.bat;查看......

米豆网
2017/12/11
0
0
python开源软件(GDSpy)怎么安装使用?

我不是计算机行业的,对python编程等之前一无所知。最近因为行业兴趣研究开源软件GDSpy,下了软件包gdspy-0.6.zip打算自己编译,结果搞了好几天都不知道怎么装上64位win7电脑。 我先在D:\下装...

xibinke
2015/03/10
502
0
Python的Cython在Windows环境下的部署安装

大学课程主教java,搞过java web 后,突发感想对于OO语言的了解,以及设计模式与OO语言的优美的配合,但同时也发现java开发的周期性十分长,于是就四处需找不错的语言,终于发现了Python。 ...

WilsonET
2013/04/06
0
1

没有更多内容

加载失败,请刷新页面

加载更多

取变量的地址赋值给另一个变量,C通过,C++编译出错

取变量的地址赋值给另一个变量,C通过。正常运行,C++编译出错。 代码如下: #include <stdio.h>int main(int argc, char *argv[]){int x = 3;int *p = &x;int y = p;/*c ...

SamXIAO
46分钟前
1
0
利用隐写术实施攻击

尽管隐写术是一种低频攻击途径,但网络犯罪分子已经开始利用它结合社交媒体的普遍性和快速传播性来传递恶意有效负载。 低调但有效的隐写技术虽然是旧把戏,但将代码隐藏在看似正常的图像中,...

Linux就该这么学
46分钟前
2
0
YII2的乐观锁和悲观锁

乐观锁与悲观锁¶ Web应用往往面临多用户环境,这种情况下的并发写入控制, 几乎成为每个开发人员都必须掌握的一项技能。 在并发环境下,有可能会出现脏读(Dirty Read)、不可重复读(Unrep...

echojson
52分钟前
2
0
UCOS线程切换原理

黑客画家
58分钟前
3
0
最牛Java架构师进阶路线(年薪80W)

1、源码分析专题 详细介绍源码中所用到的经典设计思想,看看大牛是如何写代码的,提升技术审美、提高核心竞争力。 帮助大家寻找分析源码的切入点,在思想上来一次巨大的升华。知其然,并知其...

别打我会飞
59分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部