001-mac搭建Python開發環境、Anaconda、zsh兼容


一、概述

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的功能。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM