昨天我們談到了 pyproject.toml 可以很彈性的指定和修改套件的版本,但是修改完後要怎麼做呢?今天我們先來談手動在 pyproject.toml 中添加或修改套件、並使用不同的命令將會有什麼影響。
poetry install
當你手動添加了新的套件後,使用 poetry install
將會:
poetry lock
在添加新的依賴後使用 poetry lock
將會:
poetry install
來安裝新的套件與依賴。poetry lock --no-update
在添加新的依賴後使用 poetry lock --no-update
將會:
poetry install
來安裝新的套件與依賴。poetry update
在添加新的依賴後使用 poetry update
將會:
poetry update pendulum
poetry shell
前天我們談到,創建好 poetry 虛擬環境後,使用指令 poetry run python day03/main.py
來跑 python。但是每次都要加上一個 poetry ,實在很麻煩。這時候我們可以用 poetry shell
,就可以讓 terminal 進入虛擬環境了。
poetry remove
poetry remove
可以移除不再需要的套件,更強的是,也可以一起移除該套件的依賴項。如果我們使用 pip uninstall OOpackage
,只會移除該套件而已,其依賴項並不會一起被移除,放著很佔空間。但是 pip 原始初衷是怕移除了其他套件也需要依賴的套件,這很危險。
但是使用 poetry 就不一樣了,因為它有依賴項解析的功能。如果移除的套件的依賴項,還有別的套件也依賴的話,該依賴不會一起被移除,而是只移除沒人依賴的依賴項。光是這樣子的功能,就值得棄 pip ,升級 poetry 了!!
明天我們用一個真實案例,來看使用 Poetry 來開發 LLM 應用程式,會有多美好!