之前的電腦因為年幼無知抠忘,被搞得亂七八糟, 什么Python各個版本、Conda外永、pip2崎脉、3都混在一起,每次使用得覺得很難受伯顶,這次借機公司發(fā)了新電腦囚灼,準備好好梳理下思路,把環(huán)境安排得清清楚楚明明白白祭衩。
先說需求:
- Anaconda: 自己沒事兒想看點ML灶体,安裝Anaconda玩一下
- pip2: 雖然大部分項目已經(jīng)python3了,但公司還有項目會需要到pip2掐暮,并且希望使用virtual env隔離不同項目的Python環(huán)境
Anaconda
Anaconda 是什么
Anaconda 就是一個發(fā)行版蝎抽,包含了conda、Python和超多得科學包及其依賴項路克。簡單地可以理解為一個版本的python附帶一堆依賴和版本管理器樟结。
如何安裝Anaconda
非常無腦,去官網(wǎng)下載即可精算,由于mac自帶的是python2.7瓢宦,所以我選擇了python3.7的Anaconda(https://www.anaconda.com/download/#macos)。下載之后緊接著就是無腦安裝灰羽。點點點點之后就安裝完成了驮履,可以在Launch中看到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已經(jīng)默認是3.7了,那我如何才能使用到python2.7呢前鹅。我們可以使用alias摘悴,以python2作為python2.7的別名。
別名的指令可以寫在以下三個文件中更改:
~/.bash_profile 針對用戶級別
./etc/profile 全局公有配置舰绘,登陸即會讀取
./etc/bashrc 全局公有配置,bash shell的時候會執(zhí)行
我們選擇修改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的路徑問題
系統(tǒng)Library中的python
/System/Library/Frameworks/Python.framework/Versions/2.7 自帶2.7
/usr/bin 中的python
/usr/bin/python2.7
我們其實可以看到/usr/bin中有很多個python孵运,在目前我的本機中他們都指向系統(tǒng)自帶的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
以防將來有變化秦陋,引起不必要的麻煩,我們選擇系統(tǒng)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已經(jīng)安裝完成
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