poetry shell 命令已消失?Poetry 2.0.1 改用 poetry env activate

更新日期: 2025 年 2 月 14 日

如果你在 Poetry 2.0.1 中嘗試執行以下命令:

poetry shell

你可能會看到一條錯誤訊息:

The command "shell" does not exist.

這表示 poetry shell 命令已經被移除或棄用

根據官方公告 Poetry 2.0.1 更新日誌,Poetry 團隊已經將 poetry shell 替換為 poetry env activate

如果你是 Poetry 的使用者,現在是時候適應這項變更,改用新指令來啟動虛擬環境了。


Poetry 2.0.1 的重大變更:移除 poetry shell

根據官方文件,poetry shell 已經被 poetry env activate 取代。更新日誌中明確提到:

Replace poetry shell with poetry env activate in the basic usage section (#9963).

這意味著從 Poetry 2.0.1 開始,官方建議使用 poetry env activate 來啟動虛擬環境,而不再使用 poetry shell


如何在 Poetry 2.0.1 中啟動虛擬環境?

如果你過去習慣使用 poetry shell,現在請改用以下新指令來啟動 Poetry 虛擬環境:

poetry env activate

這個新指令的作用與 poetry shell 類似,能夠啟動 Poetry 為專案建立的虛擬環境,讓你可以直接在其中執行 Python 程式或安裝套件。

此外,你仍然可以使用以下指令來檢視目前的虛擬環境:

poetry env info

如果輸出顯示 .venv\Scripts\python.exe,則說明你的虛擬環境已成功啟動。

如果 VirtualenvPath 指向 .venv,並且 Valid: True,就代表環境成功啟動,例如:

Virtualenv
Python:         3.12.4
Implementation: CPython
Path:           C:\Users\User\Desktop\AutoScraperDB\.venv
Executable:     C:\Users\User\Desktop\AutoScraperDB\.venv\Scripts\python.exe
Valid:          True

這樣你就可以確定 Poetry 已經正確啟動了你的虛擬環境!

如果你需要退出虛擬環境,則可以使用:

exit

為什麼要移除 poetry shell

雖然官方文件沒有詳細說明為何移除 poetry shell,但這可能與以下幾點有關:

  1. 更清晰的命名
    • poetry env activate 更直觀地表達了它的用途,即「啟動虛擬環境」,而 poetry shell 可能容易讓人誤以為是開啟一個新的 shell。
  2. 統一指令風格
    • Poetry 2.0 以來,許多指令的命名方式正在調整,例如 poetry install --sync 也被官方推薦改為 poetry sync,這表明團隊希望讓指令的命名更符合直覺。
  3. 減少混淆
    • 在某些系統環境下,poetry shell 可能會與系統的 shell 設定產生衝突,而 poetry env activate 則更專注於 Poetry 的虛擬環境管理,避免不必要的問題。

如何確認你的 Poetry 版本?

如果你發現 poetry shell 無法使用,請先檢查你的 Poetry 版本:

poetry --version

如果你的版本是 2.0.1 或更新版本,則請改用 poetry env activate

如果你仍然使用舊版 Poetry,則可以選擇升級至最新版本,以獲得最新的功能和修正:

poetry self update

請注意:如果你目前使用 Poetry 2.0.0,則 poetry self update 命令已經損壞,你需要重新執行安裝指令來更新 Poetry:

curl -sSL https://install.python-poetry.org | python3 -

或在 Windows 上使用 PowerShell:

(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -

總結

  • Poetry 2.0.1 移除了 poetry shell,請改用 poetry env activate 來啟動虛擬環境。
  • 這次變更是官方文件的一部分,詳細資訊請參閱:Poetry 2.0.1 官方公告
  • 如果你仍然使用 poetry shell,可能會遇到「The command ‘shell’ does not exist.」的錯誤訊息,請立即改用 poetry env activate

這次的變更可能會讓部分開發者感到不習慣,但它是 Poetry 進一步優化指令管理的一部分,讓環境管理更加直觀和高效。趕快更新你的使用方式,適應這項改動吧! 🚀

Similar Posts