Python中的Numpy、SciPy、MatPlotLib安裝與配置


Python安裝完Numpy,SciPy和MatplotLib后,可以成為非常犀利的科研利器。網上關於這三個庫的安裝都寫得非常不錯,但是大部分人遇到的問題並不是如何安裝,而是安裝好后因為配置不當,在使用時總會出現import xxx error之類的錯誤。我也是自己摸索了很久才發現如何去正確配置的。下面就詳細說下安裝和配置的過程。

1.安裝Python,這里選擇2.7還是3.4都行,不過推薦使用2.7,畢竟現在的教程大部分還是基於2.7的,3.4跟2.7的語法還是略有不同,為了避免語法錯誤的麻煩,還是推薦大家使用2.7。下載地址為:https://www.python.org/downloads/

2.下載Numpy,SciPy,MatplotLib這三個庫的exe,注意,這里用的是exe,因為MatplotLib的使用需要以Numpy的支持,所以最好先裝NumPy再裝MatplotLib。下載地址:

其中NumPy和SciPy沒有32和64位的區別,MatPlotLib需要根據自己的系統選擇32位和64位的。再次提醒,這三個庫一定都要下載對應版本的exe。下載完成后一次安裝就是了,他們會自動找到你之前安裝好的Python所在的路徑的,一路Next到底就行了。

3.在第2步安裝完成后,可以在MatPlotLib的Examples頁面(http://matplotlib.org/examples/index.html)Copy代碼運行,發現一定會出錯。這里出的錯,大體有三個:

  • ImportError: matplotlib requires dateutil
  • ImportError: matplotlib requires pyparsing
  • No module name six

4.解決No module name six問題,解決辦法很簡單。把你的安裝路徑:Python27/Lib/site-packages/scipy/lib中的six.py,six.pyc,six.pyo三個文件拷貝到 你的安裝路徑:Python27/Lib/site-packages,這個問題就解決了。如何還不行,請記住這個地址(非常重要):http://www.lfd.uci.edu/~gohlke/pythonlibs/ 
然后下載這個文件:six‑1.9.0‑py2.py3‑none‑any.whl,下載后,利用CMD進入到該文件所在的目錄(DOS命令為:cd /d XX:/XXX/six‑1.9.0‑py2.py3‑none‑any.whl 把你自己的six文件的所在路徑按格式粘貼進DOS然后回車就行了),然后輸入命令:pip install six-1.9.0-py2.py3-none-any.whl,等DOS命令跑完,six不存在的問題就解決了。操作圖如下: 
這里寫圖片描述

5.解決ImportError: matplotlib requires dateutil問題,方法和第4步一樣,下載python_dateutil‑2.4.2‑py2.py3‑none‑any.whl,然后pip install就可以解決該問題了。操作如下: 
這里寫圖片描述

6.解決ImportError: matplotlib requires pyparsing問題,還如同之前一樣,下載pyparsing‑2.0.3‑py2‑none‑any.whl(選擇對應的版本,這里有2和3的區別)然后利用pip install安裝好就可以了。操作如下: 
這里寫圖片描述

到此,所有的配置就完成了,可以愉快地使用MatPlotLib進行科學畫圖和計算了。另外提醒一句,Python2.7和Python3.4不要共存,共存的時候安裝這幾個庫會出現莫名其妙地錯誤,怎么也對不了,推薦只是用Python2.7,。最后,附帶一個來自MatPlotLib的畫圖代碼:

from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot as plt from matplotlib import cm fig = plt.figure() ax = fig.gca(projection='3d') X, Y, Z = axes3d.get_test_data(0.05) ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3) cset = ax.contour(X, Y, Z, zdir='z', offset=-100, cmap=cm.coolwarm) cset = ax.contour(X, Y, Z, zdir='x', offset=-40, cmap=cm.coolwarm) cset = ax.contour(X, Y, Z, zdir='y', offset=40, cmap=cm.coolwarm) ax.set_xlabel('X') ax.set_xlim(-40, 40) ax.set_ylabel('Y') ax.set_ylim(-40, 40) ax.set_zlabel('Z') ax.set_zlim(-100, 100) plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

效果為: 
這里寫圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM