最近正在自學Python作科學計算,固然在不少書籍和公開課裏最早作的就是安裝Numpy, Scipy, Matplotlib等包,不過每次安裝單獨的包時,都會有各類問題致使安裝失敗或者調用失敗。javascript
好比,
遇到 Exception 和 Error:java
明明已經提示 Sklearn 安裝成功,可是在調用時卻顯示:ImportError: No module named sklearn
python
還有用 Numpy 的時候:ValueError: numpy.dtype has the wrong size, try recompiling
ruby
看到你們說用虛擬環境比較好,我就也本身安了一個,果真在 virtualenv 上安裝各類包都很順利,用起來也很是順暢,沒再出現什麼問題。bash
virtualenv 能夠用來創建一個專屬於項目的python環境,保持一個乾淨的環境。只須要經過命令建立一個虛擬環境,不用的時候經過命令退出,刪除。app
下面介紹一下安裝方法:ide
安裝 virtualenv測試
安裝 virtualenvwrapperspa
安裝 Numpy,Scipy,Matplotlib 等命令行
$ sudo pip install virtualenv
而後創建一個測試目錄:
$ mkdir testvirtual $ cd testvirtual
就能夠成功建立一個虛擬環境 env1:
$ virtualenv env1
Virtaulenvwrapper是virtualenv的擴展包,能夠更方便地新增,刪除,複製,切換虛擬環境。
運行下面命令就安裝成功了,默認安裝在 /usr/local/bin
下面:
$ sudo easy_install virtualenvwrapper
接下來建立一個文件夾,用來存放全部的虛擬環境:
$ mkdir ~/workspaces $ cd ~/workspaces
可是在使用virtualenvwrapper以前,要運行virtualenvwrapper.sh文件,須要設置環境變量,也就是把下面兩行代碼寫進 ~/.bashrc
裏,可是個人電腦裏並無~/.bashrc
,查了一下解決辦法,好比本身建立個bashrc寫進去兩行代碼,也無論用。
export WORKON_HOME=~/workspaces
source /usr/bin/virtualenvwrapper.sh
最後的辦法就是,直接在命令行寫,成功了:
$ export WORKON_HOME=~/workspaces $ source /usr/local/bin/virtualenvwrapper.sh
接下來,建立一個或者多個虛擬環境 env1,env2:
$ mkvirtualenv env1
成功後,當前路徑前面就會有 (env1)
$ mkvirtualenv env2
下面是一些基本操做命令
列出虛擬環境:
$ lsvirtualenv -b env1 env2
切換虛擬環境:
$ workon env1
查看環境裏安裝了哪些包:
$ lssitepackages
進入當前環境:
$ cdvirtualenv
進入當前環境的site-packages:
$ cdsitepackages $ cdsitepackages pip
複製虛擬環境:
$ cpvirtualenv env1 env3 Copying env1 as env3...
退出虛擬環境:
$ deactivate
刪除虛擬環境:
$ rmvirtualenv env2 Removing env2...
接下來安裝Python的各類包,就比較順暢了,好比安在env1上:
$ workon env1
安裝numpypip install numpy
安裝scipy$ pip install scipy
安裝matplotlib$ pip install matplotlib
安裝ipython$ pip install ipython[all]
安裝pandas$ pip install pandas
安裝Statsmodel$ pip install statsmodel
安裝scikit-learn$ pip install scikit-learn
按照順序所有安裝成功,後續就能夠在虛擬環境上作分析了。
之後每次進入虛擬環境就執行以下代碼便可,
不過由於個人環境變量沒有寫進bashrc裏,因此都要多執行兩行:
$ cd ~/workspaces $ export WORKON_HOME=~/workspaces $ source /usr/local/bin/virtualenvwrapper.sh $ workon env1
退出虛擬環境就用
$ deactivate
出自https://www.jianshu.com/p/51140800e8b4