美文网首页macOS
MacOS 安装 Anaconda、Python、pip、vir

MacOS 安装 Anaconda、Python、pip、vir

作者: hal | 来源:发表于2019-01-03 20:56 被阅读12次

    之前的电脑因为年幼无知,被搞得乱七八糟, 什么Python各个版本、Conda、pip2、3都混在一起,每次使用得觉得很难受,这次借机公司发了新电脑,准备好好梳理下思路,把环境安排得清清楚楚明明白白。

    先说需求:

    1. Anaconda: 自己没事儿想看点ML,安装Anaconda玩一下
    2. pip2: 虽然大部分项目已经python3了,但公司还有项目会需要到pip2,并且希望使用virtual env隔离不同项目的Python环境

    Anaconda

    Anaconda 是什么

    Anaconda 就是一个发行版,包含了conda、Python和超多得科学包及其依赖项。简单地可以理解为一个版本的python附带一堆依赖和版本管理器。

    如何安装Anaconda

    非常无脑,去官网下载即可,由于mac自带的是python2.7,所以我选择了python3.7的Anaconda(https://www.anaconda.com/download/#macos)。下载之后紧接着就是无脑安装。点点点点之后就安装完成了,可以在Launch中看到Anaconda Navigator了。

    Anaconda Navigator打开之后
    让我们再试试python:
    MacBook-Pro:~ hal$ python
    Python 3.7.1 (default, Dec 14 2018, 13:28:58) 
    [Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    

    Python2.7 怎么办

    如刚才所示,因为安装Anaconda,Python已经默认是3.7了,那我如何才能使用到python2.7呢。我们可以使用alias,以python2作为python2.7的别名。

    别名的指令可以写在以下三个文件中更改:

    ~/.bash_profile 针对用户级别
    ./etc/profile 全局公有配置,登陆即会读取
    ./etc/bashrc 全局公有配置,bash shell的时候会执行

    我们选择修改bash_profile,也是最推荐的一种:

    # added by Anaconda3 2018.12 installer
    # >>> conda init >>>
    # !! Contents within this block are managed by 'conda init' !!
    __conda_setup="$(CONDA_REPORT_ERRORS=false '/Users/wanghao/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
    if [ $? -eq 0 ]; then
        \eval "$__conda_setup"
    else
        if [ -f "/Users/wanghao/anaconda3/etc/profile.d/conda.sh" ]; then
            . "/Users/wanghao/anaconda3/etc/profile.d/conda.sh"
            CONDA_CHANGEPS1=false conda activate base
        else
            \export PATH="/Users/wanghao/anaconda3/bin:$PATH"
        fi
    fi
    unset __conda_setup
    # <<< conda init <<<
    
    #alias for python
    alias python2="/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7"
    

    前面的部分都是因为安装Anaconda自动生成的,我们添加#alias for python的部分(⚠️此处=两边不能加空格,否则会报错)

    Python2.7的路径问题

    系统Library中的python

    /System/Library/Frameworks/Python.framework/Versions/2.7 自带2.7

    /usr/bin 中的python

    /usr/bin/python2.7

    我们其实可以看到/usr/bin中有很多个python,在目前我的本机中他们都指向系统自带的python2.7

    MacBook-Pro:bin hal$ ls -al | grep 'python'
    -rwxr-xr-x    1 root   wheel     66880 11 30 13:55 python
    -rwxr-xr-x    4 root   wheel       925  8 18 10:49 python-config
    lrwxr-xr-x    1 root   wheel        75 11 30 19:00 python2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
    lrwxr-xr-x    1 root   wheel        82 11 30 19:00 python2.7-config -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
    -rwxr-xr-x    1 root   wheel     66880 11 30 13:55 pythonw
    lrwxr-xr-x    1 root   wheel        76 11 30 19:00 pythonw2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw2.7
    

    以防将来有变化,引起不必要的麻烦,我们选择系统Library中的python2.7作为alias的目录

    好像还没有pip2

    查看目前pip的版本为python3.7下的pip

    MacBook-Pro:bin hal$ pip --version
    pip 18.1 from /Users/wanghao/anaconda3/lib/python3.7/site-packages/pip (python 3.7)
    

    mac本身不自带pip,原定是需要easy_install安装的,为了保险起见,确保能装到python2.7中
    我放弃了使用easy_install(当然我猜一定有方法可以用easy_install),而选择直接下载安装

    $ cd ~/Downloads/            # curl 会默认download到当前目录所以,先选择下载文件夹
    $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py            # 下载安装脚本
    $ sudo /usr/bin/python2.7 get-pip.py          # 运行安装脚本。此时因为是sudo,不能用刚才配的python2
    

    检查以下就可以看到pip2已经安装完成

    MacBook-Pro:~ hal$ ls -al /usr/local/bin/ | grep 'pip'
    -rwxr-xr-x  1 root  wheel    299  1  3 17:37 pip
    -rwxr-xr-x  1 root  wheel    299  1  3 17:37 pip2
    -rwxr-xr-x  1 root  wheel    299  1  3 17:37 pip2.7
    

    相关文章

      网友评论

        本文标题:MacOS 安装 Anaconda、Python、pip、vir

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