iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0

簡介

Python 預設的套件管理工具為 pip,開發者可以使用 pip 來安裝需使用的套件,由於 pip 屬於輕量級的套件管理工具,因此它無法處理下列兩件事

  1. 精確的套件版本
    儘管開發者可以透過 requirements.txt 精確指定所需的套件版本,這些套件通常還會依賴其他套件(即間接依賴)。然而,pip 無法鎖定這些間接依賴的版本,導致每次安裝時可能使用不同版本的套件,從而產生不一致的結果。由於軟體專案通常由多位開發者協作完成,如果開發者各自電腦中安裝的套件版本不完全一致,可能會引發許多非預期的問題。例如,某個功能在開發者 A 的電腦環境中運行正常,但在開發者 B 的電腦環境中卻可能出現錯誤。

  2. 虛擬環境管理
    開發者通常在同一台電腦上同時維護多個軟體專案,這些專案可能使用不同版本的套件。然而,pip 預設會將所有套件安裝在同一個目錄中,這樣就很容易導致套件版本之間的衝突。為了解決這個問題,許多程式語言會使用名為虛擬環境的方式來隔離各個專案。每個專案在獨立的環境中運行,這樣專案之間就不會互相干擾,也不會產生衝突。

雖然開發者仍可以使用 pip 並額外安裝其他工具來解決上述兩個問題,但我想推薦另一個套件管理工具 —— Poetry。Poetry 將這兩項功能整合進來,使得開發者可以通過簡單的指令來有效地管理軟體專案。接下來,我將通過範例來介紹如何使用 Poetry。

範例

在使用 Poetry 之前,開發者需要先進行安裝。Poetry 官方文件提供了多種安裝方式,開發者可以根據自己的需要選擇合適的方法。

首先,開發者可以使用以下指令來建立專案目錄。在這個目錄中,最重要的檔案是 pyproject.toml。開發者可以通過這個檔案來描述專案的基本資訊和管理套件。

poetry new demo-project

接著,開發者可以使用以下指令來安裝指定版本的套件。當執行指令時,終端機會顯示 Creating virtualenv...,這是因為 Poetry 會自動為這個專案建立虛擬環境,並將所有套件安裝在這個虛擬環境中。另外,當套件安裝指令執行完畢後,目錄下會多出一個檔案 poetry.lock。Poetry 會通過這個檔案來鎖定所有套件的版本,以確保所有開發者安裝的套件版本都是一致的。

poetry add demo-package==1.3.4

最後,開發者需要在原先的指令前面加上 poetry run,以便透過 Poetry 來運行 Python 程式碼。

poetry run python main.py

在本系列文章會在介紹各種套件時鎖定套件的版本並透過 Poetry 來安裝。如果讀者使用的套件版本與文章中所示版本差異過大,可能會導致文章中的範例程式產生非預期的錯誤。


上一篇
[Day 01] 序
下一篇
[Day 03] Django
系列文
Python 不止於數據,開發應用程式它也在行!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言