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
withpoetry 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
,則說明你的虛擬環境已成功啟動。
如果 Virtualenv 的 Path 指向 .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
,但這可能與以下幾點有關:
- 更清晰的命名:
poetry env activate
更直觀地表達了它的用途,即「啟動虛擬環境」,而poetry shell
可能容易讓人誤以為是開啟一個新的 shell。
- 統一指令風格:
- Poetry 2.0 以來,許多指令的命名方式正在調整,例如
poetry install --sync
也被官方推薦改為poetry sync
,這表明團隊希望讓指令的命名更符合直覺。
- Poetry 2.0 以來,許多指令的命名方式正在調整,例如
- 減少混淆:
- 在某些系統環境下,
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 進一步優化指令管理的一部分,讓環境管理更加直觀和高效。趕快更新你的使用方式,適應這項改動吧! 🚀