美文网首页
终于搞明白了一个事情?

终于搞明白了一个事情?

作者: Arayasouren | 来源:发表于2017-01-04 09:52 被阅读497次

    我已经在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

    相关文章

      网友评论

          本文标题:终于搞明白了一个事情?

          本文链接:https://www.haomeiwen.com/subject/prtovttx.html