告別Anaconda!邁向Python老手必學的三大環境神器:pyenv, Poetry, pipx

更新 發佈閱讀 5 分鐘

還記得剛接觸 Python 的時候,老師第一句話就是:「同學們,我們先裝 Anaconda!」

於是大家電腦裡都塞進去一個肥大到不行的 Anaconda,容量動輒幾個 GB。那時候覺得很方便,因為裡面什麼都有,但一踏進公司才發現 —— 大家都嫌 Anaconda 太肥大、不靈活,根本沒人用

不僅如此,公司專案用的 requirements.txt 更是頭大。明明照著文件安裝,卻總是出現各種奇奇怪怪的錯誤:

ERROR: Cannot install packageA==1.2 and packageB==3.4 
because these package versions have conflicting dependencies.

這種「依賴地獄」是不是很熟悉?別擔心,今天我要介紹的三個神器,就是來拯救我們的!


現代 Python 開發的三把利劍

1. pyenv — 你的多功能廚房

  • 功能: 管理不同版本的 Python 直譯器。
  • 比喻: pyenv 就像是你的廚房風格或食譜流派。你想做一道日式料理,需要特定的爐具和工具(Python 3.9);另一道中式料理則需要大火快炒的炒鍋(Python 3.8)。pyenv 讓你可以在同一台電腦上,輕鬆地切換不同風格的「廚房」,每個專案都能使用自己需要的 Python 版本,互不干擾。
  • 使用方式:
# 輕鬆安裝多個 Python 版本
pyenv install 3.8.10
pyenv install 3.9.5
pyenv install 3.11.0

# 為不同專案指定不同版本
pyenv local 3.9.5 # 這個專案用 3.9.5
pyenv local 3.11.0 # 那個專案用 3.11.0

2. Poetry:為你的佳餚準備精準的食材

  • 功能: 管理專案的套件依賴與虛擬環境。
  • 比喻:Poetry 就像是為你每道佳餚(專案)準備的專屬精準食材清單。它不僅會記錄你需要哪些套件(如 pandasnumpy),還會仔細鎖定所有次級依賴的確切版本,寫入一個 poetry.lock 檔案。當你把這個食譜給同事,他只需一個指令,就能完美複製出與你一模一樣的食材,保證菜餚味道(程式運行結果)完全一致!
  • 使用方式:
# 建立新專案(自動建立虛擬環境!)
poetry new my-awesome-project
cd my-awesome-project

# 添加依賴(自動解決版本衝突!)
poetry add requests pandas
poetry add --dev pytest black

# 安裝所有依賴(精準鎖定版本!)
poetry install

3. pipx:你的廚房通用工具箱

  • 功能: 獨立安裝和運行 Python 應用程式。
  • 比喻: pipx 就像是你的廚房通用工具箱。這裡面放的不是食材,而是你隨時會用到的「工具」:一把好用的菜刀(程式碼格式化工具 black)、一個精準的量杯(靜態檢查工具 pylint)。這些工具不屬於任何一道菜的「食材」,而是你作為廚師,為了提高效率而使用的必備品。pipx 確保這些工具獨立於你的專案,不會與你的專案食材發生衝突。
  • 使用方式:
# 安全地安裝全域工具
pipx install black # 程式碼格式化
pipx install flake8 # 程式碼檢查
pipx install jupyter # Jupyter Notebook
pipx install Spdyer​ # Spdyer​

# 臨時使用某個工具(不用安裝!)
pipx run cowsay "Hello Python!"

結語:告別混亂,擁抱專業

總而言之,pyenv + Poetry + pipx 這三位一體,完美解決了過去的痛點。pyenv 讓你自由選擇 Python 版本,Poetry 則提供了一個可靠、可複製的專案環境,pipx 則妥善管理了你的通用工具。

當你擁抱這套工具後,你將會發現 Python 的開發環境變得輕巧、專業且可靠。快動手試試吧,從此告別混亂,讓你的程式碼之路走得更順暢!


留言
avatar-img
留言分享你的想法!
avatar-img
慵懶貓系的小墨魚:數據外的日常觀察
1會員
32內容數
小墨魚,一位白天擅長資料分析與統計建模的數據工作者,夜裡則沉浸在書本與文字裡,透過閱讀與寫作與世界對話。工作之餘,也兼職統計家教,協助學生理解複雜的統計概念與軟體操作。這裡記錄我的書評、生活觀察、科技碎念,有時也寫下關於時間與情緒的小片段。願這些文字,成為我們在日常中相遇的溫柔片刻。
2025/09/28
在現代網站架構中,Nginx 幾乎是後端工程師必備的工具。它不僅是一個高效能的網頁伺服器,更常被用作 反向代理伺服器,協助網站應付龐大的流量、保護內部架構,甚至提升安全性與效能。但在深入 Nginx 之前,我們先來理解一個核心觀念:為什麼叫「反向代理」,而不是「正向代理」?
Thumbnail
2025/09/28
在現代網站架構中,Nginx 幾乎是後端工程師必備的工具。它不僅是一個高效能的網頁伺服器,更常被用作 反向代理伺服器,協助網站應付龐大的流量、保護內部架構,甚至提升安全性與效能。但在深入 Nginx 之前,我們先來理解一個核心觀念:為什麼叫「反向代理」,而不是「正向代理」?
Thumbnail
2025/09/27
想像一下你要從臺北運送一批貨物到高雄,你可以選擇高鐵、火車、卡車,或是自己開車。每種方式都是「運輸」,但它們的工具、路線和效率完全不同。 網站後端語言也是一樣,它們的目的都是「處理資料與回應請求」,但採用的工具和運行方式各有特色,這就是所謂的 「生態環境」(Ecosystem)。 一、 四大後端
Thumbnail
2025/09/27
想像一下你要從臺北運送一批貨物到高雄,你可以選擇高鐵、火車、卡車,或是自己開車。每種方式都是「運輸」,但它們的工具、路線和效率完全不同。 網站後端語言也是一樣,它們的目的都是「處理資料與回應請求」,但採用的工具和運行方式各有特色,這就是所謂的 「生態環境」(Ecosystem)。 一、 四大後端
Thumbnail
2025/09/24
在資料分析工作中,我們經常需要根據地理邊界來篩選資料。本文將完整示範如何下載鄉鎮邊界圖資,提取特定區域(以雲林縣斗六市為例),並篩選出落在該區域內的資料點。
Thumbnail
2025/09/24
在資料分析工作中,我們經常需要根據地理邊界來篩選資料。本文將完整示範如何下載鄉鎮邊界圖資,提取特定區域(以雲林縣斗六市為例),並篩選出落在該區域內的資料點。
Thumbnail
看更多
你可能也想看
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
Python擁有便攜性和通用性,適用於多種場景,同時具有全球通用性。Python在科技製造業、資料分析、人工智慧等領域有廣泛應用,對於理工科背景者而言有獨特的優勢。透過在線課程、自學書籍、實作專案,以及參與社群和開源專案,理工背景者可以達成從轉職進入Python程式領域的目標。
Thumbnail
Python擁有便攜性和通用性,適用於多種場景,同時具有全球通用性。Python在科技製造業、資料分析、人工智慧等領域有廣泛應用,對於理工科背景者而言有獨特的優勢。透過在線課程、自學書籍、實作專案,以及參與社群和開源專案,理工背景者可以達成從轉職進入Python程式領域的目標。
Thumbnail
對於剛開始接觸Python的新手來說,無疑會在眾多執行環境中迷茫,不知道應該選擇哪一個比較好? 在這個情況下,我會推薦一個好的起點– Anaconda。現在,讓我們花費一分鐘的時間,我將引導你成功安裝Anaconda,並且正式開啟你在資料科學領域的旅程!
Thumbnail
對於剛開始接觸Python的新手來說,無疑會在眾多執行環境中迷茫,不知道應該選擇哪一個比較好? 在這個情況下,我會推薦一個好的起點– Anaconda。現在,讓我們花費一分鐘的時間,我將引導你成功安裝Anaconda,並且正式開啟你在資料科學領域的旅程!
Thumbnail
介紹如何用assign函數在Python中建立新欄位
Thumbnail
介紹如何用assign函數在Python中建立新欄位
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News