MacOS 安装 Anaconda、Python、pip、virtualenv以及冲突解决

之前的电脑因为年幼无知,被搞得乱七八糟, 什么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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,817评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,329评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,354评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,498评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,600评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,829评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,979评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,722评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,189评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,519评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,654评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,940评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,762评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,993评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,382评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,543评论 2 349