我已經(jīng)在bash_profile里alias了新版python,為何我pip安裝的東西都還是在舊版的python里? 原因在于我每次安裝都說我沒有權(quán)限,所以我每次安裝都sudo了,其實root和普通user的python版本還是不同的。root所使用的python是老版的。
user:
which python :/opt/local/bin/python 2.7.10
which pip :/usr/local/bin/pip 2.7.6
root:
which python :/usr/local/bin/python 2.7.8
which pip :/usr/local/bin/pip 2.7.6
在目錄/usr/local/lib/python2.7/site-packages下只有一個numpy,顯然不是pip的路徑,而主要的東西都是在:
/Library/Python/2.7/site-packages
可見我的電腦里主要使用的就是/Library/里的2.7。
那么問題來了,為什么我在shell里python進的是2.7.10的版本,但是我依然可以使用tensorflow呢?這可能是Pycharm版本顯示錯誤?
我的~/.bash_profile里是這樣寫的
PATH="/System/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
alias python="/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7"
但是/opt/local/bin/python的原身是:
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
pip的文件里寫的是:/usr/bin/python
總結(jié): 系統(tǒng)一般使用的是/usr/bin/python 這個所對應(yīng)的pip文件給出的是2.7.6的版本,也就是
/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
在系統(tǒng)中一共有兩個python,一個2.6 一個2.7這個就是2.7那個,那么如果我們想使用別的pip呢?
除了系統(tǒng)中的python,我還有兩個python,
一個是
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
一個是
/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
現(xiàn)在尋找2.7.10的pip,我們在.bashprofile中添加:
alias pip="/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/pip"
然后運行pip install --upgrade pip權(quán)限不夠,看網(wǎng)上的換成pip install --upgrade pip --user就能安裝了
安裝了一個pandas,但是不知道安裝在哪里了,看pycharm是裝在了:
/Users/erleye/Library/Python/2.7/lib/python/site-packages/
感覺由于pip的首行都是/usr/bin/python,所以不論裝什么都是在老的python里2.7.6,因為我沒有去軟鏈接python,只是在shell中alias了,那么就用老的python好了,雖然強迫癥很煩。
發(fā)現(xiàn)import sys;print sys.path可以看依賴的目錄,發(fā)現(xiàn)我裝的IDLE對應(yīng)的python應(yīng)該是/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
所以版本分別為:
2.7.9: /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
2.7.8: /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
2.7.10: /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
2017年2月7日
今天安裝了TFLearn,更新了Tensorflow的版本到0.10.0,但是不能import tensor flow,關(guān)鍵問題是import的numpy版本太低,原因是我的sys.path中新地址在后面,因此import了老的numpy,因此我想修改下sys.path的路徑順序。把/Library/Python/2.7/site-packages提上去。事實證明有效。為了一勞永逸,在.bash_profile中添加:
export PYTHONPATH=$PYTHONPATH:path