技術筆記-在 mac 安裝 python 並建立虛擬環境

更新於 發佈於 閱讀時間約 3 分鐘

首先安裝 python,依照 官網 的指示,下載正確的版本並執行就可,重點在以下。

虛擬環境的管理平台許多人使用 anaconda,許多教 python 的課程第一堂就是不管三七二十一先安裝再說,但我用了一陣子之後覺得它實在太笨重了,早有掙脫的想法,欣見原生的 python 已經具有虛擬環境管理模組,就是 venv,使用起來也挺容易的,下達以下指令:

python3 -m venv envName

就會在當前目錄下建立一個資料夾 envName,裡面放置了一個環境所必須有的基本配備,就是 python 直譯器和套件管理工具 pip,還有啟動此環境所需要的 script;日後該環境所有的套件都會限縮在這裡面,玩壞了或不滿意就整個砍掉,乾乾淨淨。要啟動該該環境則使用此指令:

source envName/bin/activate

若啟動成功,command line 的提示詞就會出現該環境的名稱如下:

(envName) newman@nmMac DataScience %


下一步就是安裝開發環境,以往是習慣安裝 jupyter notebook,然後在 command line 啟動之再開啟 browser 使用,實在也有點小麻煩;因為好像有聽說 vscode 裡面也可以用 notebook,所以我暫緩動作,先用 vs code 打開專案看看。…結果果然 notebook 檔案的確正確開啟,但怎麼選都選不到剛剛建立的環境!


經過一番掙扎,終於搞懂了,不同於 anaconda 有一個中央註冊機制,可以列出納管的所有虛擬環境,venv 是分散自治的,所有運作資訊都保存在一個資料夾裡面,所以 vscode 當然就無法偵測到它的存在了,這該怎麼辦才好?解決方法很簡單,把虛擬環境建立在專案資料夾裡面就好了!想起來也很合理,vscode 不可能隨時在掃描整個電腦哪邊建立了新的環境了,但若在專案目錄裡就算合理,利用前述指令在專案目錄裡建立虛擬環境:

python3 -m venv .venv

指令剛下完 vscode 就很機警的提示說「發現新環境」,真乖。

raw-image


這個設計哲學就是一個專案一個環境,非常合理,原始的 python 環境在安裝後的功用只有用到 venv 然後就貢起來束之高閣,從此就不會再動不動就套件版本衝突了啦。只是這個虛擬環境資料夾會隨著套件安裝的增多而越來越大,記得必須加到 gitignore 裡面,以免增加 git server 無謂的負擔。我也為自己訂下一個開發原則,就是固定把環境名稱叫做 .venv,這樣在 mac 它會成為隱藏資料夾,平時寫程式時也不須跑出來礙眼了。


vscode 跨平台表現非常優越,幾乎取代了所有的 ide,手邊在開發的幾種專案類型都是用它,包含 angular,python with jupyter notebook,python with flask,nodejs,都是活在其上的。


歸納以上筆記用到的指令:

# 建立環境,記得在專案目錄內:
python3 -m venv .venv

# 啟動環境,啟動後可以在裡面用 pip install 安裝套件:
source .venv/bin/activate

# 列出此環境安裝了哪些套件
pip list

# 將目前環境的所有套件連同版本,輸出到一個檔案
# 當開發完成要把程式連同環境 deploy 到雲端 (我是用 azure) 時需要用到此檔案,很重要
pip freeze > requirements.txt

# 離開環境
deactivate

# 砍掉環境:
rm -rf .venv


紐曼 Newman,2023/3/17

導覽頁:紐曼的技術筆記-索引




留言
avatar-img
留言分享你的想法!
avatar-img
newman的沙龍
25會員
122內容數
漫步是一種境界。
newman的沙龍的其他內容
2025/04/01
Reinforcement Learning (強化學習) 的理論非常有趣,可能是因為其中許多方法,與人類的學習歷程極為相似,如試錯,獎懲,改進策略,持續優化等等。現在準備來爬這座山了,我把學習階段大致分成三個小山峰,依序為 Q-Learning --> DQN --> Actor-Critic,
Thumbnail
2025/04/01
Reinforcement Learning (強化學習) 的理論非常有趣,可能是因為其中許多方法,與人類的學習歷程極為相似,如試錯,獎懲,改進策略,持續優化等等。現在準備來爬這座山了,我把學習階段大致分成三個小山峰,依序為 Q-Learning --> DQN --> Actor-Critic,
Thumbnail
2025/03/08
稍微看一下 Telegram 官方文件,哇!好強喔,功能說明的第一項赫然出現「可以取代整個網站」!口氣真的很大。雖然我的需求應該很低,但能夠確認前面是一座豐富的寶藏,還是很令人興奮的,待基本功能掌握之後,可以再評估和決定要不要往下挖。 發送訊息 要達成這第一個目標,首先必須建立一個 bot。
Thumbnail
2025/03/08
稍微看一下 Telegram 官方文件,哇!好強喔,功能說明的第一項赫然出現「可以取代整個網站」!口氣真的很大。雖然我的需求應該很低,但能夠確認前面是一座豐富的寶藏,還是很令人興奮的,待基本功能掌握之後,可以再評估和決定要不要往下挖。 發送訊息 要達成這第一個目標,首先必須建立一個 bot。
Thumbnail
2025/03/01
Line Notify 即將停止服務,隨著時間越來越緊迫,隱約聽到許多人在哀嚎。印象中有許多廠商,把 Line Notify 用得淋漓盡致,甚至可以一個客戶建一個群組,把許多客製化服務都用程式管理的井井有條,得到很好的滿意度。但這種好康,無限免費的即時訊息,沒有了,時間就在 2025/3/31!公告
Thumbnail
2025/03/01
Line Notify 即將停止服務,隨著時間越來越緊迫,隱約聽到許多人在哀嚎。印象中有許多廠商,把 Line Notify 用得淋漓盡致,甚至可以一個客戶建一個群組,把許多客製化服務都用程式管理的井井有條,得到很好的滿意度。但這種好康,無限免費的即時訊息,沒有了,時間就在 2025/3/31!公告
Thumbnail
看更多
你可能也想看
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
首先安裝 python,依照 官網 的指示,下載正確的版本並執行就可,重點在以下。 虛擬環境的管理平台許多人使用 anaconda,許多教 python 的課程第一堂就是不管三七二十一先安裝再說,但我用了一陣子之後覺得它實在太笨重了,早有掙脫的想法,欣見原生的 python 已經具有虛擬環境管理模
Thumbnail
首先安裝 python,依照 官網 的指示,下載正確的版本並執行就可,重點在以下。 虛擬環境的管理平台許多人使用 anaconda,許多教 python 的課程第一堂就是不管三七二十一先安裝再說,但我用了一陣子之後覺得它實在太笨重了,早有掙脫的想法,欣見原生的 python 已經具有虛擬環境管理模
Thumbnail
建置 vscode + python 開發環境的完整流程,詳細且附圖
Thumbnail
建置 vscode + python 開發環境的完整流程,詳細且附圖
Thumbnail
Anaconda 是一個用來管理 python 虛擬環境的「第三方」軟體,它提供好用易懂的使用者介面,讓大家能輕鬆管理 python 的虛擬環境
Thumbnail
Anaconda 是一個用來管理 python 虛擬環境的「第三方」軟體,它提供好用易懂的使用者介面,讓大家能輕鬆管理 python 的虛擬環境
Thumbnail
在 Linux 系統創建 python 虛擬環境的詳細流程 (完全不需要 Anaconda)
Thumbnail
在 Linux 系統創建 python 虛擬環境的詳細流程 (完全不需要 Anaconda)
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News