iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0

全端 LLM 應用開發-Day05-Poetry 其他重要指令

手動改了 pyproject.toml

昨天我們談到了 pyproject.toml 可以很彈性的指定和修改套件的版本,但是修改完後要怎麼做呢?今天我們先來談手動在 pyproject.toml 中添加或修改套件、並使用不同的命令將會有什麼影響。

使用 poetry install

當你手動添加了新的套件後,使用 poetry install 將會:

  • 安裝 pyproject.toml 中列出的所有套件,包括新添加的與其依賴項。
  • 如果 poetry.lock 文件存在,它將依照該文件中固定的版本來安裝依賴項。
  • 如果 poetry.lock 文件不存在,它將創建一個新的,其中固定了依賴的版本。

使用 poetry lock

在添加新的依賴後使用 poetry lock 將會:

  • 創建或更新 poetry.lock 文件,會更新的依賴版本。
  • 不會安裝任何套件。你將需要再次運行 poetry install 來安裝新的套件與依賴。

使用 poetry lock --no-update

在添加新的依賴後使用 poetry lock --no-update 將會:

  • 重新創建 poetry.lock 文件以包含新的套件的依賴,但所有現有的依賴版本不變。
  • 新添加的套件的版本將會是根據 pyproject.toml 中的版本約束來解析的最新版本。
  • 這仍然不會安裝任何套件。你將需要再次運行 poetry install 來安裝新的套件與依賴。

使用 poetry update

在添加新的依賴後使用 poetry update 將會:

  • 更新所有依賴到最新可用版本,並更新 poetry.lock 文件。
  • 它會安裝新添加的套件和更新所有其他依賴。
  • 這個指令超級強大,更新套件版本時也解析並更新依賴。有更新過 Python 套件的人常常都會受到依賴項衝突所困,用這個指令就能簡單解決了。
  • 可以指定要更新什麼套件,例如說 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 應用程式,會有多美好!


上一篇
全端 LLM 應用開發-Day04-Pyproject toml 詳解
下一篇
全端 LLM 應用開發-Day06-Poetry 在 LLM 開發的美好
系列文
全端 LLM 應用開發(向量資料庫, Hugging Face, OpenAI, Azure ML, LangChain, FastAPI and more)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言