python 安装scikit!!!
首先,吐槽一下,真的是折腾好几天,一会更新这个,一会更新那个,总是各种奇葩问题诸如此类:
cannot import check-build
pip有新版本,需要更新(黄字)
其中scipy出错最多,但是还是可安装的
找不到指定模块
no model XXX
诸如此类,各种更新就是不行
但是下边的这个文章真的是帮了大忙。。。。。。。。。本身比较懒惰,不想全部卸载后在更新,所以一直各种问题,看了下边的文章,非常有用,当然有些人的可能真的只是scipy不兼容,那你更新一下就好了,要是还不行,你就全删了,从新安装,注意安装顺序
http://www.2cto.com/kf/201512/454271.html
还有版本问题,
。。。。。。。。。。。。。。。。。。。。。。。以下是文章内容
这篇文章主要讲述Python如何安装Numpy、Scipy、Matlotlib、Scikit-learn等库的过程及遇到的问题解决方法。最近安装这个真是一把泪啊,各种不兼容问题和报错,希望文章对你有所帮助吧!你可能遇到的问题包括:
ImportError: No module named sklearn 未安装sklearn包
ImportError: DLL load failed: 找不到指定的模块
ImportError: DLL load failed: The specified module could not be found
Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat
Numpy Install RuntimeError: Broken toolchain: cannot link a simple C program
ImportError: numpy.core.multiarray failed to import
ImportError: cannot import name __check_build
ImportError: No module named matplotlib.pyplot
一. 安装过程
最早我是使用"pip install scikit-learn"命令安装的Scikit-Learn程序,并没有注意需要安装Numpy、Scipy、Matlotlib,然后在报错"No module named Numpy"后,我接着使用PIP或者下载exe程序安装相应的包,同时也不理解安装顺序和版本的重要性。其中最终都会报错" ImportError: DLL load failed: 找不到指定的模块",此时我的解决方法是:
错误:sklearn ImportError: DLL load failed: 找不到指定的模块
重点:安装python第三方库时总会出现各种兼容问题,应该是版本问题,版本需要一致。
第一步:卸载原始版本,包括Numpy、Scipy、Matlotlib、Scikit-Learn
pip uninstall scikit-learn
pip uninstall numpy
pip uninstall scipy
pip uninstall matplotlib
第二步:不使用"pip install package"或"easy_install package"安装,或者去百度\CSDN下载exe文件,而是去到官网下载相应版本。
http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy
http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
http://www.lfd.uci.edu/~gohlke/pythonlibs/#matplotlib
http://www.lfd.uci.edu/~gohlke/pythonlibs/#scikit-learn
安装过程中最重要的地方就是版本需要兼容。其中操作系统为64位,Python为2.7.8 64位,下载的四个whl文件如下,其中cp27表示CPython 2.7版本,cp34表示CPython 3.4,win_arm64指的是64位版本。
numpy-1.10.2-cp27-none-win_amd64.whl
scipy-0.16.1-cp27-none-win_amd64.whl
matplotlib-1.5.0-cp27-none-win_amd64.whl
scikit_learn-0.17-cp27-none-win_amd64.whl
PS:不推荐使用"pip install numpy"安装或下载如"numpy-MKL-1.8.0.win-amd64-py2.7.exe"类似文件,地址如:
http://sourceforge.net/projects/numpy/files/NumPy
http://sourceforge.net/projects/scipy/files/Scipy
PS(这里记得下载带有mkl的)
第三步:去到Python安装Scripts目录下,再使用pip install xxx.whl安装,先装Numpy\Scipy\Matlotlib包,再安装Scikit-Learn。
其中我的python安装路径"G:\software\Program software\Python\python insert\Scripts",同时四个whl文件安装核心代码:
pip install G:\numpy+scipy+matplotlib\numpy-1.10.2-cp27-none-win_amd64.whl
pip install G:\numpy+scipy+matplotlib\scikit_learn-0.17-cp27-none-win_amd64.whl
- C:\>G:
- G:\>cd G:\software\Program software\Python\python insert\Scripts
- G:\software\Program software\Python\python insert\Scripts>pip install G:\numpy+s
- cipy+matplotlib\numpy-1.10.2-cp27-none-win_amd64.whl
- Processing g:\numpy+scipy+matplotlib\numpy-1.10.2-cp27-none-win_amd64.whl
- Installing collected packages: numpy
- Successfully installed numpy-1.10.2
- G:\software\Program software\Python\python insert\Scripts>pip install G:\numpy+s
- cipy+matplotlib\matplotlib-1.5.0-cp27-none-win_amd64.whl
- Installing collected packages: matplotlib
- Successfully installed matplotlib-1.5.0
- G:\software\Program software\Python\python insert\Scripts>pip install G:\numpy+s
- cipy+matplotlib\scipy-0.16.1-cp27-none-win_amd64.whl
- Processing g:\numpy+scipy+matplotlib\scipy-0.16.1-cp27-none-win_amd64.whl
- Installing collected packages: scipy
- Successfully installed scipy-0.16.1
- G:\software\Program software\Python\python insert\Scripts>pip install G:\numpy+s
- cipy+matplotlib\scikit_learn-0.17-cp27-none-win_amd64.whl
- Processing g:\numpy+scipy+matplotlib\scikit_learn-0.17-cp27-none-win_amd64.whl
- Installing collected packages: scikit-learn
- Successfully installed scikit-learn-0.17
第四步:此时配置完成,关键是Python64位版本兼容问题和Scripts目录。最后用北邮论坛一个神人的回复结束这个安装过程:“傻孩子,用套件啊,给你介绍一个Anaconda或winpython。只能帮你到这里了! ”
。。。。。。。。。。。。。。。。。。。
由于时间关系他那个版本你可能找不到了
以下是我的安装版本仅供参考:
。。。。。。。。。。。。。。。。。。。。
二. 测试运行环境
搞了这么半天,为什么要装这些呢?给几个用例验证它的正确安装和强大吧!
Scikit-Learn是基于python的机器学习模块,基于BSD开源许可。Scikit-learn的基本功能主要被分为六个部分,分类,回归,聚类,数据降维,模型选择,数据预处理,具体可以参考官方网站上的文档。
NumPy(Numeric Python)系统是Python的一种开源的数值计算扩展,一个用python实现的科学计算包。它提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。
内容包括:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。
SciPy (pronounced "Sigh Pie") 是一个开源的数学、科学和工程计算包。它是一款方便、易于使用、专为科学和工程设计的Python工具包,包括统计、优化、整合、线性代数模块、傅里叶变换、信号和图像处理、常微分方程求解器等等。
Matplotlib是一个Python的图形框架,类似于MATLAB和R语言。它是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。
第一个代码:斜线坐标,测试matplotlib
- import matplotlib
- import numpy
- import scipy
- import matplotlib.pyplot as plt
- plt.plot([1,2,3])
- plt.ylabel('some numbers')
- plt.show()
运行结果:
第二个代码:桃心程序,测试numpy和matplotlib
代码参考:Windows 下 Python easy_install 的安装 - KingsLanding
- import numpy as np
- import matplotlib.pyplot as plt
- X = np.arange(-5.0, 5.0, 0.1)
- Y = np.arange(-5.0, 5.0, 0.1)
- x, y = np.meshgrid(X, Y)
- f = 17 * x ** 2 - 16 * np.abs(x) * y + 17 * y ** 2 - 225
- fig = plt.figure()
- cs = plt.contour(x, y, f, 0, colors = 'r')
- plt.show()
运行结果:
第三个程序:显示Matplotlib强大绘图交互功能
代码参考:Python-Matplotlib安装及简单使用 - bery
- import numpy as np
- import matplotlib.pyplot as plt
- N = 5
- menMeans = (20, 35, 30, 35, 27)
- menStd = (2, 3, 4, 1, 2)
- ind = np.arange(N) # the x locations for the groups
- width = 0.35 # the width of the bars
- fig, ax = plt.subplots()
- rects1 = ax.bar(ind, menMeans, width, color='r', yerr=menStd)
- womenMeans = (25, 32, 34, 20, 25)
- womenStd = (3, 5, 2, 3, 3)
- rects2 = ax.bar(ind+width, womenMeans, width, color='y', yerr=womenStd)
- # add some
- ax.set_ylabel('Scores')
- ax.set_title('Scores by group and gender')
- ax.set_xticks(ind+width)
- ax.set_xticklabels( ('G1', 'G2', 'G3', 'G4', 'G5') )
- ax.legend( (rects1[0], rects2[0]), ('Men', 'Women') )
- def autolabel(rects):
- # attach some text labels
- for rect in rects:
- height = rect.get_height()
- ax.text(rect.get_x()+rect.get_width()/2., 1.05*height, '%d'%int(height),
- ha='center', va='bottom')
- autolabel(rects1)
- autolabel(rects2)
- plt.show()
运行结果:
第四个代码:矩阵数据集,测试sklearn
- from sklearn import datasets
- iris = datasets.load_iris()
- digits = datasets.load_digits()
- print digits.data
运行结果:
第五个代码:计算TF-IDF词语权重,测试scikit-learn数据分析(以上及个均测试)
参考代码:http://blog.csdn.net/liuxuejiang158blog/article/details/31360765
- # coding:utf-8
- __author__ = "liuxuejiang"
- import jieba
- import jieba.posseg as pseg
- import os
- import sys
- from sklearn import feature_extraction
- from sklearn.feature_extraction.text import TfidfTransformer
- from sklearn.feature_extraction.text import CountVectorizer
- if __name__ == "__main__":
- corpus=["我 来到 北京 清华大学", #第一类文本切词后的结果 词之间以空格隔开
- "他 来到 了 网易 杭研 大厦", #第二类文本的切词结果
- "小明 硕士 毕业 与 中国 科学院", #第三类文本的切词结果
- "我 爱 北京 天安门"] #第四类文本的切词结果
- #该类会将文本中的词语转换为词频矩阵,矩阵元素a[i][j] 表示j词在i类文本下的词频
- vectorizer=CountVectorizer()
- #该类会统计每个词语的tf-idf权值
- transformer=TfidfTransformer()
- #第一个fit_transform是计算tf-idf,第二个fit_transform是将文本转为词频矩阵
- tfidf=transformer.fit_transform(vectorizer.fit_transform(corpus))
- #获取词袋模型中的所有词语
- word=vectorizer.get_feature_names()
- #将tf-idf矩阵抽取出来,元素a[i][j]表示j词在i类文本中的tf-idf权重
- weight=tfidf.toarray()
- #打印每类文本的tf-idf词语权重,第一个for遍历所有文本,第二个for便利某一类文本下的词语权重
- for i in range(len(weight)):
- print u"-------这里输出第",i,u"类文本的词语tf-idf权重------"
- for j in range(len(word)):
- print word[j],weight[i][j]
运行结果:
三. 其他错误解决方法
这里虽然讲解几个安装时遇到的其他错误及解决方法,但作者更推荐上面的安装步骤。
在这之前,我反复的安装、卸载、升级包,其中遇到了各种错误,改了又改,百度了又谷歌。常见PIP用法如下:
- * pip install numpy --安装包numpy
- * pip uninstall numpy --卸载包numpy
- * pip show --files PackageName --查看已安装包
- * pip list outdated --查看待更新包信息
- * pip install --upgrade numpy --升级包
- * pip install -U PackageName --升级包
- * pip search PackageName --搜索包
- * pip help --显示帮助信息
ImportError: numpy.core.multiarray failed to import
python安装numpy时出现的错误,这个通过stackoverflow和百度也是需要python版本与numpy版本一致,解决的方法包括"pip install -U numpy"升级或下载指定版本"pip install numpy==1.8"。但这显然还涉及到更多的包,没有前面的卸载下载安装统一版本的whl靠谱。
Microsoft Visual C++ 9.0 is required(unable to find vcvarsall.bat)
因为Numpy内部矩阵运算是用C语言实现的,所以需要安装编译工具,这和电脑安装的VC++或VS2012有关,解决方法:如果已安装Visual Studio则添加环境变量VS90COMNTOOLS即可,不同的VS版本对应不同的环境变量值:
Visual Studio 2010 (VS10)设置 VS90COMNTOOLS=%VS100COMNTOOLS%
Visual Studio 2012 (VS11)设置 VS90COMNTOOLS=%VS110COMNTOOLS%
Visual Studio 2013 (VS12)设置 VS90COMNTOOLS=%VS120COMNTOOLS%
但是这并没有解决,另一种方法是下载Micorsoft Visual C++ Compiler for Python 2.7的包。
PS:这些问题基本解决方法使用pip升级、版本一致、重新下载相关版本exe文件再安装。
希望对你有帮助
当然有的外文帖子说让你在cannot import check-build时候删掉sklearn里的import check-build 那几句,当然的确是不会再报错了,但是你要把ELSE 那段都删了,要不下一句又又错了,而且删除了只是保证你import sklearn时候没错,一旦你要用sklearn里的算法,还是会有错,根本解决不了问题,,,,,不要怕麻烦,重新装吧
python 安装scikit!!!的更多相关文章
- [python] 安装numpy+scipy+matlotlib+scikit-learn及问题解决
这篇文章主要讲述Python如何安装Numpy.Scipy.Matlotlib.Scikit-learn等库的过程及遇到的问题解决方法.最近安装这个真是一把泪啊,各种不兼容问题和报错,希望文章对你有所 ...
- python安装、模块安装
python安装 windows 下载安装包 https://www.python.org/downloads 改环境变量 [右键计算机]-->[属性]-->[高级系统设置]-->[ ...
- win7系统下python安装numpy,matplotlib,scipy和scikit-learn
1.安装numpy,matplotlib,scipy和scikit-learn win7系统下直接采用pip或者下载源文件进行安装numpy,matplotlib,scipy时会遇到各种问题,这是因为 ...
- python安装完毕后,提示找不到ssl模块的解决步骤
转载自 醇酒醉影 python安装完毕后,提示找不到ssl模块: [root@localhost ~]# python2.7.5 Python 2.7.5 (default, Jun 3 2013, ...
- python安装numpy和pandas
最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了.首要条件,python版本必须 ...
- python 安装模块
python安装模块的方法很多,在此仅介绍一种,不需要安装其他附带的pip等,python安装完之后,配置环境变量,我由于中英文分号原因,环境变量始终没能配置成功汗. 1:下载模块的压缩文件解压到任意 ...
- linux下python安装到指定目录
由于使用公司服务器时没有root权限,只能把python安装到个人文件夹下,使用源码包方式安装,这里记录一下. 1.python下载 cd到目录/users/w,在此目录下安装python.通过wge ...
- Python安装、配置图文详解(转载)
Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境(I ...
- python安装numpy科学计算模块
解决两个问题: (1)Import Error: No module named numpy (2)Python version 2.7 required, which was not found i ...
随机推荐
- 探究CSS中border-top属性的使用
上一节我们介绍了CSS top属性的用法,那么这节关于CSS border-top属性用法学习起来就会轻松一些,border-top 简写属性把上边框的所有属性设置到一个声明中. 本文向大家描述一下C ...
- django的forms
base知识 参考博文:https://www.cnblogs.com/yuanchenqi/articles/9036474.html 用户表单是Web端的一项基本功能,大而全的Django框架中自 ...
- python中的logger模块详细讲解
logger 提供了应用程序可以直接使用的接口handler将(logger创建的)日志记录发送到合适的目的输出filter提供了细度设备来决定输出哪条日志记录formatter决定日志记录的最终输出 ...
- String.Join() 方法 的用法
连接指定数组的元素或集合的成员,在每个元素或成员之间使用指定的分隔符.重载此成员.有关此成员的完整信息(包括语法.用法和示例),请单击重载列表中的相应名称 Join(String, IEnumerab ...
- Linux编辑器|gedit|vi|vim编辑器
gedit编辑器 gedit是一个Linux环境下的文本编辑器,类似windows下的写字板程序,在不需要特别复杂的编程环境下,作为基本的文本编辑器比较合适. sublime编辑器 Sublime T ...
- shell for的使用
好久没写shell了,花了半个小时才写对,不常用果然不够熟悉,以后还是得每天花半个小时写写shell #!/bin/sh #set -x p="/" cd $p echo $(pw ...
- python you-get 下载视频
python使用you-get模块下载视频 pip install you-get # 安装先 怎么用 进入命令行: you-get url 暂停下载:ctrl + c ,继续下载重复 y ...
- linux实时流量监控
在类Unix系统中可以使用top查看系统资源.进程.内存占用等信息.查看网络状态可以使用netstat.nmap等工具.若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop. 一.if ...
- 用meta标签让双核浏览器用我们指定的内核渲染
<html> <head> <meta name="renderer" content="webkit|ie-comp|ie-stand&q ...
- java垃圾回收几种算法
1.引用计数法 2.标记——清除法 3.标记——整理算法 4.copying算法 5.generation算法(新生代.老年代.持久代) 详情参考:深入理解 Java 垃圾回收机制