macOS

MacOS 安装 Anaconda、Python、pip、vir

2019-01-03  本文已影响12人  hal

之前的电脑因为年幼无知,被搞得乱七八糟, 什么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
上一篇下一篇

猜你喜欢

热点阅读