Blog Cover Image

Inspire you to have New thinking, Walk out your unique Road.

有的時候,你無意間遇到的一些故事,會激發你的靈感,改變你的想法,接下來你會用與之前全然不同的觀念去創造屬於你獨特的故事。

Sign @MinaYu.

如何在Mac安裝Python環境,教你備妥開發Python的合格環境 | 新電腦重新安裝

Posted on

原先安裝Python環境的教學寫在這篇 終端機與DJANGO,PYTHON 安裝與打開一個PROJECT篇

但有鑒於自己已經慢慢熬過小菜鳥時期,加上過了好幾個月無論是環境或者我自己本身技術都有改變

我漸漸對舊的文章安裝方式有些改變

有幸公司幫工程師買了新電腦,我有機會再重新安裝一次Python環境在新電腦上。

這次終於可以在全新的電腦上,重新安裝一次環境,並紀錄在文章內,現在就來跟我一起安裝Python環境吧!

由於有讀者來信,讓我了解某些安裝描述在M1晶片的新型蘋果電腦上會有些問題,所以麻煩若有遇到任何問題,在寄信跟我說,我會將文章修正唷,感謝您的支持!



本篇目錄:

  • 作者插播
  • 新電腦健檢
  • 終端機選擇 iTerm2 vs Terminal
  • 安裝homebrew
  • 安裝 Python 環境
  • 安裝 pip: Python 套件管理工具
  • 虛擬環境
  • 如何安裝 python 2 虛擬環境 (已不可參考)
  • 注意事項
  • 額外事項

以下,$字號的字行代表終端機內的程式碼,請複製$字後的程式碼

警告: python 2 版本相關內容大部分都移除,以 python 3 版本為主

如果看了文章還是不了解的話,我有特別錄製自己操作的影片,可以點擊影片搭配一起安裝

如何安裝python環境影片

(是說,影片有問題再麻煩寄信通知qq)


作者插播:

2021/06/06

大約一年前,我的一個前端同事不小心google到我的網站後,認出我

然後接著他跟我說,我有按照你的教學走,可是最後有問題,當下我其實就有想要更改文章內容,但因為我手邊的Mac都裝好Python了,我就想到一個妙招,把我的Macbook Pro給重灌,這樣我就可以跟著我的文章重新再裝一次,不料因為重裝時操作錯誤,讓我的Macbook Pro 死機了2-3個月,但在某次洗澡或如廁時又找到解決方法拯救電腦。目前這台電腦已經讓給我媽用了。

所以這次修改我打算把2016年買的 Mac Air 灌上最新的 Big Sur 來測試我的文章內容,有因應時事了XDD,不再是3年前的時空了

其實重新操作一次還真的遇到的問題不少,本次修正會更新一些以前的內容,還有重新設計文章架構,畢竟過了幾年後赫然發現這篇文章點閱率超高qq,還被同事認出,讓文章比較好閱讀。

最後再次感謝讀者,這篇文章貢獻了不少閱讀量!!



新電腦健檢

當時時空: 使用電腦: 2018年 Macbook Pro

再次驗證: 使用電腦: 2016年 Macbook Pro 加上 Big Sur

新電腦除了剛開始一無所有時,動手前最好查看一下電腦整體的狀況,了解後再開始安裝環境,不然若真的有問題,跑完安裝後才發現也就浪費一堆時間啦qq

諸如像是

  • 新Mac的Python環境有無
  • 新Mac的 觸控式軌跡板 有沒有打開 點一下來選按 (這超級影響手感XD)
  • 整理一些舊電腦順手的使用介面

接著就來一步一步把環境裝好囉!


終端機選擇 iTerm2 vs Terminal

俗話說的好,要成為一個軟體開發工程師,你要先擁有一個好的終端機工具 (呵呵我說的XD)

Mac有原生的 終端機程式 (Terminal),就是windows的 命令提示字元。但當時前輩推薦我使用另外一個終端機軟體叫做 iTerm2,介面和Mac原生的終端機很像,但是多了很多驚奇的指令跟操作。

然後我也順道裝了 zsh 有更炫砲的主題可以用,這又是另外一個坑了,發個網址讓想嘗試的人試試看吧!

超簡單!十分鐘打造漂亮又好用的 zsh command line 環境

所以這邊一樣推薦Mac新手可以裝 iTerm2 取代 Mac原生終端機。


打開 瀏覽器 Safari/Chrome 先裝一個好康的!! 就是 iTerm

當然你要用原生的終端機 Terminal裝環境也行喔!


- 安裝 iTerm (選擇性)

打開 Safari/Chrome 下載 iTerm

網頁下面有個大大的 Download 不要怕按下去就對惹!接著解壓縮後直接拉著它丟進應用程式資料夾(application),然後就能夠在應用程式清單中開啟 iTerm,一樣是黑畫面的終端機!


- 使用原生終端機 Terminal

打開 啟動台(Launchpad) » 其他 » 找到 終端機 Terminal


無論用哪種方法,搞定後,就打開你的黑螢幕,像個駭客般的操著黑視窗裝置環境吧! XD

先來檢查一下新電腦的環境~

$ ls

確保你在 ~ 中,內部的一些資料夾會是: Applications, Documents, Library …。

這些是 home 以及 ~,所以當你下指令

$ cd ~

會直接跑到這個地方!


接著我們來檢查一下電腦有沒有裝Python

$ python -V

這個指令是檢查Python 版本,通常Mac新電腦至少會裝 Python 2.7 版

Python 2.7.10

跳出這個就代表具備Mac原生的python 2 版本,可是目前大部分專案開發都使用Python 3 版本以上了,所以我們需要安裝3以上的環境。

健檢好電腦後,就來裝環境吧!



安裝homebrew

先來安裝 Homebrew ,他是mac中重要的套件管理程式,未來如果需要安裝其他程式,也會需用使用到 Homebrew 來進行安裝。

[M1晶片新電腦使用者] 注意!有讀者寄信主動回饋,按照描述安裝homebrew會出現問題,所以請使用M1晶片新型的蘋果電腦的讀者,可以參考下列網站安裝homebrew

Homebrew 安裝 (Mac M1)

有鑒於本人目前手邊,沒有M1的蘋果電腦(我也想買一部啊!),但不小心早了一年買了IMac,因此短時間應該不會再購買新電腦,也無法親自實測,撰寫文章。

就直接導流過去了,然後安裝完就可以直接跳下一個步驟安裝Python環境囉!

之後的新電腦趨勢應該都是 M1晶片為主,只能先參考其他部落格主的文章了,若本人有購買新電腦或者其他新的內容,會再更新文章,若有其他安裝上的問題,歡迎讀者來信唷!



那如果使用的電腦非M1晶片新電腦的話,就繼續看下去吧!

前往 Homebrew 網站複製指令

Homebrew

沒錯,就是網站中間有一行指令,直接複製並 貼於終端機

$ /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

終端機 / iTerm run 指令後,請按 Return (Enter) 繼續安裝。

這會需要一段時間大約十分鐘或多一點,過程中如果有卡住或者停止不動,基本上沒有跳什麼錯誤的話,就放著讓他繼續執行。有時候只是檔案需要下載跟安裝比較久。

除非真的過超級久或者有其他錯誤跳出,在特別去做處理。



稍待片刻喝咖啡



確認您的Homebrew安裝好了

$ brew doctor

Your system is ready to brew.


安裝 Python 環境

Python環境有兩種方法

  1. 原生Python 環境: 保留系統原生的 python 2.7 版本, 並安裝 python 3,用 virtualenv 指令去決定要開什麼版本的虛擬環境。

  2. Anaconda: 安裝anaconda (他會自動把Python版本提升到2或3),取決於你安裝的版本

1. 原生環境

原生環境就是在電腦中保留python 2,且安裝python 其他版本,安裝完之後會是非常乾淨的python環境。

如果要開發專案的話,通常我們會透過指令 virtualenvvenv 來開一個新的虛擬環境 (避免跟原本的python環境混合),然後自己上網找需要或者該專案需求的套件並透過 pip 安裝至虛擬環境中。套件都手動安裝。


2. Anaconda

是一個Python的套件管理系統,Anaconda 強大的就是他提供使用者介面操作,讓你可以不用透過不好理解的終端機操作python,他是一個程式內部包含Python的版本以及各種Python的套件/函式庫,所以他佔的容量會非常大。

只要下 conda 相關指令,他就會開一個已具備很多套件的Python虛擬環境,你不用再用pip一個一個裝,不過如果有原先anaconda內沒有的套件,就可能還是需要開anaconda起來安裝!


如果你還是分不清楚上面在寫什麼的話,我這打個比方,有吃過吃到飽餐廳嗎?

第一個方法就是你坐在餐廳,當你想吃高麗菜時,你就點高麗菜,高麗菜會送來。想吃雞肉時,就點雞肉,雞肉會送來。如果都不點,單獨坐在餐廳也可以。所以食材不會放在餐廳內, 需要時才會送到

第二個方法就是,你坐在餐廳內,中間有一個超大的吧台,高麗菜,豆芽菜,各種肉類海鮮都在吧台中央,要什麼馬上就有。好處是你可以肉眼看到吧檯裡有什麼食材,而且可以馬上拿。壞處時佔的容量非常大,因為幾乎大部分的食材都有了。

(本文章不教如何安裝Anaconda)



這篇還是主要教用原生環境來做開發

安裝Python 3 (選項一)

經測試過後,我發現安裝 python3 會直接安裝最新版本的python (我個人認為 3.7 版本比較穩定),之後再來更新怎麼安裝指定版本的Python。


請打開 iTerm 或者是 終端機 Terminal 輸入

$ brew install python3

確認python 3 安裝好了

$ python3 -V

Python 3.7.3

輸入 python3 就可以直接用python來編譯了

$ python3

...
...
Type "help", "copyright", "credits" or "license" for more information.
>>>

使用 exit() 離開 python 3 環境

exit()

這樣就代表 Python 3 已經安裝好了!



安裝 pip: Python 套件管理工具

pip 是 python 的套件管理工具,在使用python開發時,如果需要安裝各類型的 python package (python 套件) 都需要透過 pip 來進行安裝。

在python 2的年代, pip 跟 python 是分開來安裝,安裝完python還需要安裝pip,但是 python 3 安裝完後,就會直接安裝 pip,使用 pip3 來喚出 python3 的套件管理工具。



- Python 3 的 pip

$ pip3 list

打下指令後會出現下列畫面:

Package    Version
---------- -------
pip        19.0.3
setuptools 40.8.0
six        1.12.0
wheel      0.33.1
You are using pip version 19.0.3, however version 21.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

這樣就代表 python 3pip 已經安裝完成了。


- Python 2 的 pip

python 2 的 pip 安裝目前已經不可使用,所以我先移除了

基本上目前大部分都使用python 3 進行開發,python 官方也有說明在往後的幾年將不再繼續對python 2進行更新跟維護,就是讓開發者能夠使用python 3開發。

如果真的需要使用 python 2 開發的話,可能需要特別去搜尋如果安裝python 2 的 pip,這篇文章就不再針對這點做研究。



開虛擬環境

Python2/ Python3 都有了,那接下來就來試著開虛擬環境。

以上剛剛的教學都是將 Python 裝進電腦中,基本上電腦已經可以使用python來開發,也可以說是具備了python的開發環境。

但是通常一個工程師會開發不同的專案,總不可能都用同一個 Python環境開發 (因為每個專案需要使用的套件都不同,使用到的套件版本也不同),而剛剛我們安裝的是適用於整部電腦的python開發環境,所以如果就這樣直接開始開發專案的話,會沒辦法好好管理使用的套件,也會混合不同專案所使用的套件。

此時我們就需要學會開啟虛擬環境來針對不同的專案做開發。



如果不清楚的話,我們將剛剛安裝好的 python 3 比喻做一家醫院,今天有一個需要皮膚開刀的專案進來,醫生要準備任何和皮膚開刀相關的工具與器具,也許還需要準備皮膚雷射的裝置。

然後有另外一個專案是產婦生小孩,此時有另外一個醫生抱著接生工具,讓產婦躺在皮膚開刀的病人旁邊,一起做手術。 (抱歉我沒生過小孩,所以先這樣比喻)

最後有一個緊急需要換肝的人也推到正在做手術的兩個人旁邊,又進來一個醫生,又抱著需要的工具,然後全部工具都擺在一起,行程十分混亂的場面。

這就是上面的例子。

虛擬環境 就比喻為 手術房,所以今天要皮膚開刀的病人跟手術工具都備妥在 虛擬環境1 (手術房A),而產婦和婦產科醫生則被分配到 虛擬環境2 (手術房B),裡面擁有最高科技的接生工具。最後則是緊急換肝病人被推進 虛擬環境3 (手術房C),內有任何緊急救治相關的工具。

這麼一來不同的手術患者都有不同手術房跟工具,就不會形成手忙腳亂的狀況。


要學著習慣每次開發一個新的專案都開一個新的虛擬環境喔!這樣就等於是在醫院的手術房裡做手術,不管怎麼搞亂都是手術房內的事,不開虛擬環境就像在醫院任何地方做手術,任何原因或者若有其他病人也在同地方做手術都會互相干擾唷!



如何開一個虛擬環境

無論是已經有專案資料夾還是沒有專案資料夾,通常會在資料夾的第一層創立虛擬環境,除非該專案有特別的設計架構,那這個就要詢問主管或者合作夥伴了。

先確保目前在要開發的專案資料夾中,如果還沒有任何專案的話,可以先創立一個資料夾做測試。

那這個案例就以 沒有專案資料夾 為範例

首先先開一個資料夾

一樣打開 iTerm / Terminal

創立一個資料夾叫做 myproject

$ mkdir myproject

$ ls

列出所有檔案,會看到剛剛創立的資料夾名稱

接著進入資料夾中

$ cd myproject

應該是什麼都沒有xD

創立虛擬環境

$ python3 -m venv venv

通常我們會使用 venv 或者 .venv 作為虛擬環境的資料夾名稱,這邊的例子取名為 venv

稍待片刻後,如果沒錯誤,會停個幾秒,然後就創好虛擬環境了

我們在用 ls 指令檢查一下有沒有新創立的虛擬環境

$ ls

venv

原則上看到 venv 資料夾,就代表環境已經創立好了!

但是創立好並不代表你已經在環境中,當開發時,我們需要進到環境中。

可以使用 activatedeactivate進入退出 虛擬環境。


進入虛擬環境

$ source venv/bin/activate

輸入完後,就會看到 終端機 terminal 前面會加上 (venv) 代表啟動環境成功囉!

(venv) $

可以用 python -V 來檢查一下虛擬環境內的版本

$ python -V

Python 3.8.2

這邊解釋一下為什麼前面使用的指令是python3,但是進入虛擬環境後只要打python

因為當我們還沒進入虛擬環境時,電腦會擁有不同版本的 python,至少我們的電腦現在有原本的 python 2 和 新安裝的 python 3,所以會需要用 python3 來區分是打開python3還是python2版。其實網路上有其他方式,可以將 python 指向新安裝的 python 3 版本,但我希望文章內不要做太多其他的動作,免得之後不知道怎麼調回來。

進到虛擬環境後,由於虛擬環境是已經指定版本的一個新的環境,所以在虛擬環境內的版本就只會有一個,這麼一來直接默認 python = 建立的 python 版本。


$ pip list

當然在虛擬環境內,也可以直接輸入 pip list,而不用加上 pip3

Package    Version
---------- -------
pip        19.0.3
setuptools 40.8.0
six        1.12.0
wheel      0.33.1

這麼一來虛擬環境就開好了。

如果要離開虛擬環境的話,使用 deactivate 來退出。

$ deactivate

(venv) $

原本的 (venv) 消失了!代表已經順利退出虛擬環境囉!


如何安裝 python 2 虛擬環境

這邊也需要說明

就有的python2 安裝已經不可使用,因此移除

基本上目前大部分都使用python 3 進行開發,python 官方也有說明在往後的幾年將不再繼續對python 2進行更新跟維護,就是讓開發者能夠使用python 3開發。

如果真的需要使用 python 2 開發的話,可能需要特別去搜尋如果安裝python 2 的 pip,這篇文章就不再針對這點做研究。



注意事項

  • 開一個新專案/開發已存在的專案,要習慣開虛擬環境開發,不要用電腦原本的環境開發,會很容易互相影響,將原本的環境污染(稱之為污染是因為無意中安裝了不同的套件)!

  • 等於是電腦原始設定為python 2.7, 新裝了python3, 只要用python3指令開虛擬環境,就可以用python3環境做開發

  • 沒用到的虛擬環境,就直接刪掉!有需要開發專案再重新開一個。虛擬環境等同於把很大一部分的 python 程式 複製一份新的,所以仔細觀察的話,一個虛擬環境的資料夾會佔超多容量。

  • 通常開發專案使用 git 或者其他 版本控制工具,要記得把虛擬環境忽略不要上傳,通常和人協作開發程式,是不會把自己的虛擬環境上傳上git讓別人看到的!

  • 你都看到這了,我要先感謝你,偷偷跟你說,通常我們不太會直接手用終端機 coding,所以你之後應該也會使用其他軟體開發工具 (我是使用 Pycharm) 或者 VsCode 來開發專案,基本上開發工具都會自動偵測專案內有沒有虛擬環境,如果沒有則會詢問你要不要創立虛擬環境。



額外事項

有幾項東西對於新電腦也可以一併安裝

  • iTerm
  • Chrome
  • Pycharm
  • Vscode

python的環境安裝會隨著電腦硬體的更新跟技術的改變會有不同的變革,所以如果你按照以上的教學安裝發現有誤,再麻煩寫信告知我做修正,讓未來參考文章的人能夠操作得更順利。

感謝你的觀看!

2021/06/06 修訂