Python安装numpy,matplotlib,scikit_learn遇到的问题大汇总

我几乎花了一整天的时间来搞numpy,matplotlib和scikit-learn这三个用于机器学习的库的配置,期间遇到了无数的问题(不是我笨,是电脑实在不给力啊!!!!)。现在我从安装python3.4开始说明我在这期间遇到的种种问题以及相对应的解决方式。

第一步:下载python3.4

可能有人会说,朴有天python3.5都出来了,为什么还用3.4呢?这是因为有些库很傲娇,现阶段并不支持朴有天python3.5……可悲的是,我们要安装的这几个库都只是最高支持到3.4而已。

登陆https://www.python.org/downloads/  下载python3.4,然后按照提示安装。这里要说一下,如果之前电脑里面有别的版本的python的话,最好能够保证两个版本不会互相影响。这里说的互相影响是我们下面要聊到的在cmd窗口输入python和pip指令时的互相干扰,具体情况下面讲。如果没法保证的话,就像我一样卸载掉之前的版本吧。

第二步:设置环境变量

Python安装numpy,matplotlib,scikit_learn遇到的问题大汇总_第1张图片

大概就像这样把两个地址:C:\Python34和C:\Python34\Scipts加到末尾。如果不加的话,当你在cmd窗口调用python或者pip时就会出现如下情况:

 

 

第三步:下载各种库

1.      numpy库

这个库类似与一个计算器,可以计算诸如cos(),sin()等等的数据。

http://sourceforge.net/projects/numpy/files/NumPy/1.10.0/在这里按照个人情况选择下载。

2.      matplotlib库

这个库是用来画各种各样漂亮的图像的。

https://pypi.python.org/pypi/matplotlib/1.4.3在这里说明一下,下载时尽量下载后缀是exe的文件,例如这种:


你会发现,下载了.exe文件之后,会省很多很多事……我这是实践出真知。

3.      scikit-learn库

这个库就相当牛逼了,它是一个集成了相当多机器学习算法,可以为我们省去很多麻烦。另外该项目文档齐全、讲解清晰,功能齐备,使用方便,而且社区活跃,强烈推荐。

https://pypi.python.org/pypi/scikit-learn/0.16.1#downloads和上面一样,优先推荐.exe文件下载。

第四步:安装库

 

1.      先从自始至终都没有给我到过乱的numpy库开始。

运行exe文件之后,按照说明一步步往下操作。安装完毕后,进入python自带的GUI IDLE中输入:import numpy 如果没报错,就恭喜你像我一样幸运啦~~一般这一步是不会出问题的。

 

2.      下面是最麻烦的matplotlib库

同样是运行exe文件,然后一步一步进行操作。安装好之后,在IDLE中输入:

Import matplotlib

然后肯定就会报错,例如:

ImportError: matplotlib requires six

这是缺少six库,没关系,我们下载就好:

https://pypi.python.org/pypi/six/1.10.0注意了,为了简便,我们在这里选择是压缩包的那个选项,也就是:


然后我们对其进行解压,将最后解压得到的文件夹改名为“six”,将其置入C:\Python34\Lib\中。之后再尝试运行:import six,观察有无报错。一般情况下是没有错误的。

解决了six,我们继续运行:import matplotlib 然后又会报错:

ImportError: matplotlib requires dateutil

这是缺少dateutil库。我们下载就好:

https://pypi.python.org/pypi/python-dateutil/2.4.2这里我们下载后缀为whl的那个文件,因为亲测这个文件比压缩包好用,报错少……

然后我们安装这个文件。由于这个文件很特殊,我们要进入到cmd界面进行操作。步骤如下图所示(文件我放桌面上了,听说在桌面上操作错误少,我也不是很确定……):

Python安装numpy,matplotlib,scikit_learn遇到的问题大汇总_第2张图片

如果你操作之后和我一样,那么恭喜你这里也成功了。

解决了dateutil,我们继续运行:import matplotlib 然后又会报错:

ImportError: matplotlib requires pyparsing

这是缺少pyparsing库,我们下载就好了:

https://pypi.python.org/pypi/pyparsing/2.0.3#downloads这里我们下载.exe文件,简单快捷。

 

解决了pyparsing,我们继续运行:import matplotlib ,这时一般不会报错了。如果有报错,看报错字样中出现“__version__ = "1.3.0" ”这种的,解决办法如下:

将six文件夹中的six.py以及pyc文件复制一份放入:C:\Python34\Lib\site-packages

其中,pyc文件在C:\Python34\Lib\six\__pycache__这里面。这样做了之后,问题就可以解决了。我也不知道为啥这么神奇…

 

第五步:安装scikit-learn

安装scikit-learn是有前提的。我们必须先安装scipy库。

https://pypi.python.org/pypi/pyparsing/2.0.3#downloads在这里下载.exe文件。然后和上面进行同样的操作。应该就OK了。

 

下面说一说我为什么会耽误一天这么长时间,因为原来我电脑里面有python3.5,我忘记了它的存在…所以后面就很混乱,卸载了3.5之后一切似乎都很顺利了。

下面附上两个example,分别用来测试matplotlib和sklearn这两个库。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

def update_line(num, data, line):
    line.set_data(data[...,:num])
    return line,

fig1 = plt.figure()

data = np.random.rand(2, 25)
l, = plt.plot([], [], 'r-')
plt.xlim(0, 1)
plt.ylim(0, 1)
plt.xlabel('x')
plt.title('test')
line_ani = animation.FuncAnimation(fig1, update_line, 25, fargs=(data, l),
    interval=50, blit=True)
#line_ani.save('lines.mp4')

fig2 = plt.figure()

x = np.arange(-9, 10)
y = np.arange(-9, 10).reshape(-1, 1)
base = np.hypot(x, y)
ims = []
for add in np.arange(15):
    ims.append((plt.pcolor(x, y, base + add, norm=plt.Normalize(0, 30)),))

im_ani = animation.ArtistAnimation(fig2, ims, interval=50, repeat_delay=3000,
    blit=True)
#im_ani.save('im.mp4', metadata={'artist':'Guido'})

plt.show()
"""
====================================
Plotting Cross-Validated Predictions
====================================

This example shows how to use `cross_val_predict` to visualize prediction
errors.

"""
from sklearn import datasets
from sklearn.cross_validation import cross_val_predict
from sklearn import linear_model
import matplotlib.pyplot as plt

lr = linear_model.LinearRegression()
boston = datasets.load_boston()
y = boston.target

# cross_val_predict returns an array of the same size as `y` where each entry
# is a prediction obtained by cross validated:
predicted = cross_val_predict(lr, boston.data, y, cv=10)

fig,ax = plt.subplots()
ax.scatter(y, predicted)
ax.plot([y.min(), y.max()], [y.min(), y.max()], 'k--', lw=4)
ax.set_xlabel('Measured')
ax.set_ylabel('Predicted')
fig.show()



你可能感兴趣的:(Python安装numpy,matplotlib,scikit_learn遇到的问题大汇总)