一、概述
mac下搭建python環境推薦使用Anaconda+Pycharm。
1.1、Anaconda
Anaconda是一個免費開源的Python和R語言的發行版本,用於計算科學(數據科學、機器學習、大數據處理和預測分析),Anaconda致力於簡化包管理和部署。Anaconda的包使用軟件包管理系統Conda進行管理。超過1200萬人使用Anaconda發行版本,並且Anaconda擁有超過1400個適用於Windows、Linux和MacOS的數據科學軟件包。
1.1.1、下載安裝
下載鏈接Anaconda官網
直接根據默認地址選擇安裝好即可,選擇完成后會自動配置環境變量。安裝完成后可以在終端輸入:conda list,測試環境變量是否配置成功。
安裝完成之后會在應用程序中出現Anaconda圖標。進入查看即可。
1.2、Jupyter Notebook
Jupyter Notebook是基於網頁的用於交互計算的應用程序。其可被應用於全過程計算:開發、文檔編寫、運行代碼和展示結果。
簡而言之,Jupyter Notebook是以網頁的形式打開,可以在網頁頁面中直接編寫代碼和運行代碼,代碼的運行結果也會直接在代碼塊下顯示的程序。如在編程過程中需要編寫說明文檔,可在同一個頁面中直接編寫,便於作及時的說明和解釋。
1.2.1、安裝
Anaconda已經自動為你安裝了Jupter Notebook及其他工具,還有python中超過180個科學包及其依賴項。
在mac環境下,在終端中輸入命令:Jupyter notebook之后,系統將會自動啟動並打開瀏覽器。
1.3、Pycharm
安裝也直接按照默認路徑即可。但是安裝過程需要注意:安裝路徑不要含有中文或空格
項目創建:

創建文件

更多工具配置參看: Java-idea-安裝配置優化等
二、其他說明
1、Anaconda3與zsh和oh my zsh兼容問題
在上述1.1中安裝完畢后,使用終端發現還是不能使用python3,
$ python -V Python 2.7.10 $ python3 -V zsh: command not found: python3
環境以及問題
系統為macOS,且終端的shell為zsh
安裝的是Anaconda的圖形化版本
終端運行Anaconda下的命令,如conda時出現“command not found”的問題
終端無法使用Anaconda的原因
大部分人應該都是Anaconda的圖形化版本,但在Mac系統下,Anaconda的安裝程序並沒有修改環境變量,這導致了我們在終端無法使用conda等命令。這是因為Anaconda默認安裝在/Users/username的目錄下,而終端中zsh的可訪問的程序都放在/bin, /usr/bin, /usr/local/bin,有時也會放在~/bin目錄下,因此我們需要修改zsh的.zshrc配置文件,將Anaconda的bin目錄加到配置文件中去。
解決步驟
終端,修改zsh的.zshrc配置文件:
echo 'export PATH="/Users/lihongxu6/opt/anaconda3/bin:$PATH"' >> ~/.zshrc
source /Users/lihongxu6/.zshrc
注意安裝目錄以及 用戶名
為了更好一點可以在上述成功后執行:conda init zsh
此時測試:python3 -V 或者 conda -V 即可
2、從Anaconda3無法打開終端
$ /Users/mac/.anaconda/navigator/a.tool ; exit; /Users/mac/.anaconda/navigator/a.tool: line 1: syntax error near unexpected token `(' /Users/mac/.anaconda/navigator/a.tool: line 1: `bash --init-file <(echo "source activate /Users/mac/opt/anaconda3;")'
切換bash
chsh -s /bin/bash
然后可以正常Anaconda3打開,暫時沒有找到 其他合適方案,有時在補充,使用完畢可以切換回來
chsh -s /bin/zsh
2.1、Anaconda、conda、pip、virtualenv的區別
① Anaconda
Anaconda是一個包含180+的科學包及其依賴項的發行版本。其包含的科學包包括:conda, numpy, scipy, ipython notebook等。
② conda
conda是包及其依賴項和環境的管理工具。
適用語言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
適用平台:Windows, macOS, Linux
用途:
① 快速安裝、運行和升級包及其依賴項。
② 在計算機中便捷地創建、保存、加載和切換環境。
如果你需要的包要求不同版本的Python,你無需切換到不同的環境,因為conda同樣是一個環境管理器。僅需要幾條命令,你可以創建一個完全獨立的環境來運行不同的Python版本,同時繼續在你常規的環境中使用你常用的Python版本。——Conda官方網站
conda為Python項目而創造,但可適用於上述的多種語言。
conda包和環境管理器包含於Anaconda的所有版本當中。
③ pip
pip是用於安裝和管理軟件包的包管理器。
▪ pip編寫語言:Python。
▪ Python中默認安裝的版本:
① Python 2.7.9及后續版本:默認安裝,命令為 pip
② Python 3.4及后續版本:默認安裝,命令為 pip3
pip名稱的由來:pip采用的是遞歸縮寫進行命名的。其名字被普遍認為來源於2處:
① “Pip installs Packages”(“pip安裝包”)
② “Pip installs Python”(“pip安裝Python”)
④ virtualenv
virtualenv是用於創建一個獨立的Python環境的工具。
解決問題:
當一個程序需要使用Python 2.7版本,而另一個程序需要使用Python 3.6版本,如何同時使用這兩個程序?如果將所有程序都安裝在系統下的默認路徑,如:/usr/lib/python2.7/site-packages,當不小心升級了本不該升級的程序時,將會對其他的程序造成影響。
如果想要安裝程序並在程序運行時對其庫或庫的版本進行修改,都會導致程序的中斷。
在共享主機時,無法在全局 site-packages 目錄中安裝包。
virtualenv將會為它自己的安裝目錄創建一個環境,這並不與其他virtualenv環境共享庫;同時也可以選擇性地不連接已安裝的全局庫。
⑤ pip 與 conda 比較
→ 依賴項檢查
▪ pip:
① 不一定會展示所需其他依賴包。
② 安裝包時或許會直接忽略依賴項而安裝,僅在結果中提示錯誤。
▪ conda:
① 列出所需其他依賴包。
② 安裝包時自動安裝其依賴項。
③ 可以便捷地在包的不同版本中自由切換。
→ 環境管理
▪ pip:維護多個環境難度較大。
▪ conda:比較方便地在不同環境之間進行切換,環境管理較為簡單。
→ 對系統自帶Python的影響
▪ pip:在系統自帶Python中包的更新/回退版本/卸載將影響其他程序。
▪ conda:不會影響系統自帶Python。
→ 適用語言
▪ pip:僅適用於Python。
▪ conda:適用於Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
⑥ conda與pip、virtualenv的關系
▪ conda結合了pip和virtualenv的功能。
