终于搞明白了一个事情?

我已经在bash_profile里alias了新版python,为何我pip安装的东西都还是在旧版的python里? 原因在于我每次安装都说我没有权限,所以我每次安装都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


总结: 系统一般使用的是/usr/bin/python 这个所对应的pip文件给出的是2.7.6的版本,也就是
/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
在系统中一共有两个python,一个2.6 一个2.7这个就是2.7那个,那么如果我们想使用别的pip呢?
除了系统中的python,我还有两个python,
一个是
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
一个是
/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
现在寻找2.7.10的pip,我们在.bashprofile中添加:
alias pip="/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/pip"
然后运行pip install --upgrade pip权限不够,看网上的换成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好了,虽然强迫症很烦。

发现import sys;print sys.path可以看依赖的目录,发现我装的IDLE对应的python应该是/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,关键问题是import的numpy版本太低,原因是我的sys.path中新地址在后面,因此import了老的numpy,因此我想修改下sys.path的路径顺序。把/Library/Python/2.7/site-packages提上去。事实证明有效。为了一劳永逸,在.bash_profile中添加:
export PYTHONPATH=$PYTHONPATH:path

你可能感兴趣的:(终于搞明白了一个事情?)