`
lykops
  • 浏览: 86355 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

在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安装吧。
分享到:
评论

相关推荐

    windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)

     在windows下使用pip安装一些python的第三方库,有很多使用C写了一些扩展,需要使用VC++ Compiler 来编译安装(也可使用MInGW,一般不推荐),否则就会出现“Unable to find vcvarsall.bat”。像Python2.7就需要...

    vcvarsall.bat

    当你试图编译Python扩展模块,如Cython,或者使用其他需要MSVC(Microsoft Visual C++)编译器的项目时,可能会遇到“error: Unable to find vcvarsall.bat”的错误。这个错误通常意味着系统无法找到必要的编译环境...

    myangeline#python#python-安装gevent出错1

    python 安装gevent1. 问题在python2.7中安装gevent的时候出现 error: Unable to find vcvarsall.bat

    MySQL-python-1.2.5.win-amd64-py2.7.exe

    有效解决安装mysql-python时遇到的error: Unable to find vcvarsall.bat问题,哎,安装mingw什么的,都是浮云啊(搞了一上午都没有成功啊)!还是这个有用!

    mysqlclient-1.4.4-cp35-cp35m-win32.whl

    python3.5 32位 mysqlclient,主要解决window系统,未安装VC工具情况下,报错“error: Unable to find vcvarsall.bat”,安装python扩展使用。

    vc_environment.rar

    1、python 3.7 使用 Cython 转 .py 到 .pyd 文件 出错 error: Unable to find vcvarsall.bat 2、安装资料上传的两个文件即可 3、安装时记得勾选C++ 选项

    MySQL-python-1.2.5.win-amd64-py2.7 亲测可用版

    MySQL-python-1.2.5.win-amd64-py2.7 亲测可用版 有效解决安装mysql-python时遇到的error: Unable to find vcvarsall.bat问题,哎,安装mingw什么的,都是浮云啊(搞了一个星期都没有成功啊)!还是这个有用!

    pycrypto-win32-py3.4

    完美解决,python setup install 或者pip install pycrypto 中出现的,error:Unable to find vcvarsall.bat 错误。不需要再下载vs10d的插件,适用于python3.4最新版。

    visualcppbuildtools_full.zip

    1、python编译扩展时,error: Unable to find vcvarsall.bat,缺少c++编译工具 2、在windows下开发应用或库时,如果不想安装完整的visual studio,可以选择只安装build tools在命令行下进行编译等操作

    fastFDS安装包及win下客户端安装包

    1、解决Windows下安装FastDFS报 Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat 问题 2、解决Windows下安装FastDFS报 fdfs_client/sendfilemodule.c(53) fatal error C1189: #error : platfom ...

    win7+Python3.5下scrapy的安装方法

    通过pip3 install Scrapy直接安装,一般会报错:error: Unable to find vcvarsall.bat 网上的解决办法有2种: 通过wheel来安装lxml.whl、twisted.whl 安装vs2015,并勾选各种支持python的选项 这里果断选择了方法...

    win764位如何安装python2.7.1

    如果在安装过程中遇到 "unable to find vcvarsall.bat" 错误,可以查看相关解决方案(http://www.biaodianfu.com/python-error-unable-to-find-vcvarsall-bat.html)。 安装 Python 2.7.10 及其相关库 numpy、scipy...

    RFS安装步骤及简单使用

    - 注意解决可能出现的`error: Unable to find vcvarsall.bat`错误。 6. **安装pywin32**: - 运行`pywin32-220.win-amd64-py2.7.exe`。 - 目的是为了解决导入pywin32相关模块时可能遇到的问题。 7. **安装...

    WIndows下为Caffe安装NVIDIA DIGITS可视化工具.docx

    另外,还可能会出现 `error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat)` 的错误。这是因为找不到 VS2008 对应的 VC,可以通过添加环境变量来解决。 四、安装 Pycaffe 在安装依赖库后...

    windows10系统中安装python3.x+scrapy教程

    1. **Python error: Unable to find vcvarsall.bat**: - 安装MinGW,下载地址为:点击打开链接。 - 在MinGW的安装目录下找到bin文件夹中的mingw32-make.exe,复制并重命名为make.exe。 - 将MinGW的路径添加到...

    Python安装第三方库及常见问题处理方法汇总

    有时候,安装某些依赖C编译器的Python库(如科学计算库NumPy)时,可能会出现“error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat)”这样的错误。这通常是因为Windows系统缺少Visual C++...

    Python3安装Scrapy的方法步骤

    - **Unable to find vcvarsall.bat** 如果出现这些错误,需要采取其他方法来解决。 2. **解决安装问题** (1) **检查Python版本**:打开命令提示符(CMD),输入`python`,查看当前安装的Python版本。 (2) **...

Global site tag (gtag.js) - Google Analytics