技術筆記-在 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的沙龍
24會員
116內容數
漫步是一種境界。
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
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
我的「媽」呀! 母親節即將到來,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)
Thumbnail
創建 python 虛擬環境 (不需要安裝 Anaconda)
Thumbnail
創建 python 虛擬環境 (不需要安裝 Anaconda)
Thumbnail
1. 詳細的 python 安裝流程(不需要 anaconda) 2. 透過「命令提示字元」啟動 python 的方法
Thumbnail
1. 詳細的 python 安裝流程(不需要 anaconda) 2. 透過「命令提示字元」啟動 python 的方法
Thumbnail
最近剛好在試著研究Python的虛擬環境,今天就來稍稍筆記一下。 在之前我其實也一直搞不懂這個,直到前陣子好好靜下心研究研究後有些心得。 在 Python 開發中,經常需要建立虛擬環境,來隔離不同專案所需的套件及依賴關係。這樣可以確保每個專案使用的套件版本都是一致的,避免可能的衝突和混淆。
Thumbnail
最近剛好在試著研究Python的虛擬環境,今天就來稍稍筆記一下。 在之前我其實也一直搞不懂這個,直到前陣子好好靜下心研究研究後有些心得。 在 Python 開發中,經常需要建立虛擬環境,來隔離不同專案所需的套件及依賴關係。這樣可以確保每個專案使用的套件版本都是一致的,避免可能的衝突和混淆。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News