Python3.7安装numpy与scipy库(win10)

作为python小白,安装这两个库时查阅了许多文档,有些使用的文档隐藏很深,所以在这里自己总结一下。

(一)安装numpy(体积小,约20M)

(二)安装scipy

(三)做完(一)和(二)后报错了,需要改为下载numpy+mkl(体积大,约200M)

重要的话说三遍:

*****(一)和(二)两者不相容,只用(一)是可以的,做完(一)再做(二)会报错的,原因写在(三)里面了

*****(一)和(二)两者不相容,只用(一)是可以的,做完(一)再做(二)会报错的,原因写在(三)里面了

*****(一)和(二)两者不相容,只用(一)是可以的,做完(一)再做(二)会报错的,原因写在(三)里面了

(一)安装numpy库

1.下载网站:https://pypi/python.org/pypi/numpy

我的是python3.7,64位windows10,所以下载的是numpy-1.14.5-cp37-none-win_amd64

把这个文件放在python的scripts文件夹下。

*如果忘记了自己的python文件夹是哪一个,win10可以在电脑上搜索Python.exe,然后右键-打开所在文件夹,就能看到scripts文件夹了。

2.修改环境变量

然后将上述文件夹路径加入到系统变量中。方法如下:把Scripts这个目录拷贝下来,然后“右击此电脑-属性-高级系统设置-环境变量-系统变量-path-新建”将刚才的路径粘贴进去。

Python3.7安装numpy与scipy库(win10)

3.安装 

在搜索栏输入cmd,右键,以管理员身份运行。输入pip3.7 install C:\Users\hp\AppData\Local\Programs\Python\Python37\Scripts\numpy-1.14.5-cp37-none-win_amd64.whl(后面很长的那一串是自己的文件完整路径加上名字,我安装软件的习惯不好,喜欢按照默认路径装,所以路径这么长)

4.等待一会儿,应该就会看到安装成功的信息。试一下python文件中能够正确导入,如果可以,才算是真的安装成功。

(二)安装scipy库

这个库安装的资料更加五花八门,我很想总结一下,供大家参考。

1.下载网址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy

我的是python3.7,64位windows10,所以下载的是scipy-1.1.0-cp37-cp37m-win_amd64

把这个文件放在python的scripts文件夹下。

2.这里不用改环境变量了,前面已经改好了。要改的话参考(一)2。

3.安装 

在搜索栏输入cmd,右键,以管理员身份运行。输入pip install C:\Users\hp\AppData\Local\Programs\Python\Python37\Scripts\scipy-1.1.0-cp37-cp37m-win_amd64.whl(后面很长的那一串是自己的文件完整路径加上名字,引号里不要多空格啊什么的,否则会出错)

4.等待一会儿,应该就会看到安装成功的信息。试一下python文件中能够正确导入,如果可以,才算是真的安装成功。

(三)做完(一)和(二),在一个文件中导入scipy库,运行,会看到如下报错信息:

Traceback (most recent call last):
  File "C:\Users\hp\Desktop\a.py", line 1, in <module>
    from scipy.misc import imread, imsave, imresize
  File "C:\Users\hp\AppData\Local\Programs\Python\Python37\lib\site-packages\scipy\misc\__init__.py", line 68, in <module>
    from scipy.interpolate._pade import pade as _pade
  File "C:\Users\hp\AppData\Local\Programs\Python\Python37\lib\site-packages\scipy\interpolate\__init__.py", line 175, in <module>
    from .interpolate import *
  File "C:\Users\hp\AppData\Local\Programs\Python\Python37\lib\site-packages\scipy\interpolate\interpolate.py", line 20, in <module>
    import scipy.linalg
  File "C:\Users\hp\AppData\Local\Programs\Python\Python37\lib\site-packages\scipy\linalg\__init__.py", line 190, in <module>
    from .misc import *
  File "C:\Users\hp\AppData\Local\Programs\Python\Python37\lib\site-packages\scipy\linalg\misc.py", line 5, in <module>
    from .blas import get_blas_funcs
  File "C:\Users\hp\AppData\Local\Programs\Python\Python37\lib\site-packages\scipy\linalg\blas.py", line 214, in <module>
    from scipy.linalg import _fblas
ImportError: DLL load failed: 找不到指定的模块。

这么多文件是因为它在一步步推导报错原因。虽然一开始就有错了,但是这个错误直到最后要输出的时候才给你倒推出来。

最后总结:问题原因是numpy没找到支持blas的库。

解决办法:到https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy,下载numpy+mkl,文件选择和下载过程参考(一),就是文件名不一样而已。(如果已经安装numpy,可以通过pip uninstall numpy卸载。)

这样安装后运行程序,又一次报错:

Traceback (most recent call last):
  File "C:\Users\hp\Desktop\a.py", line 1, in <module>
    from scipy.misc import imread, imsave, imresize
ImportError: cannot import name 'imread' from 'scipy.misc' (C:\Users\hp\AppData\Local\Programs\Python\Python37\lib\site-packages\scipy\misc\__init__.py)

为了解决这个问题,我们需要安装pillow库,在命令行进入安装python的文件夹下的scripts文件夹,运行pip intall pillow就可以了。

然后我的程序就能顺利运行了。

from scipy.misc import imread, imsave, imresize
img = imread("cat.jpg")
print(img.dtype, img.shape)
输出了文件图片的信息:

uint8 (900, 1440, 3)