obsidian_love/組織/EverfortuneAI/{Note} Poetry.md

2.3 KiB
Raw Blame History

author date category tags
deng 20250116 Note
Python
Poetry
Dependency
Note

cover

  • Abstract
    • 新時代的Python環境管理器支援Python3.9+、多平台以及pyproject.toml功能全面適合管理複雜的開發專案以下內容大部分以Poetry2.0版本規範為主。
  • Resources
  • Commands
    • 將虛擬環境建立的位置設至專案資料夾內(統一放在專案資料夾內很方便啊!想移除整個環境的話直接把它刪掉就好)
      • poetry config virtualenvs.in-project true
    • 初始化專案並提供互動式介面協助產出pyproject.toml
      • poetry init
    • 創立某個python版本的虛擬環境poetry依據python版本切分虛擬環境
      • poetry env use python3.x
    • 新增套件可以套用extra及version例如"requests[security,socks]~=2.22.0"
      • poetry add [package_name]
    • 更新套件
      • poetry update [package_name]
    • 移除套件(沒有被其他套件依賴的依賴套件也一併會被移除)
      • poetry remove [package_name]
    • 透過pyproject.toml產生poetry.lock環境檔通常在修改完前者後執行
      • poetry lock
    • 將poetry.lock環境檔套用至虛擬環境中實際上安裝套件至venv的部分
      • poetry install
    • 產生進入虛擬環境的指令不像conda那樣直接進入虛擬環境而是會產生類似source .venv/bin/activate的指令)
      • poetry env activate
    • 輸出requirements.txt檔
      1. 安裝export插件poetry2.0以上版本需要自己裝)
        • pipx inject poetry poetry-plugin-export
      2. 執行指令
        • poetry export --without-hashes --format=requirements.txt > requirements.txt
        • poetry export -f requirements.txt --output requirements.txt 帶有hash值
    • 秀出環境的套件以及其依賴套件(會繃出一棵很美的樹喔!)
      • poetry show --tree
    • 打包並發布專案(可以先加上--dry-run進行測試)
      • poetry publish --repository [repo_name] --username [user_name] --password [password] --build --skip-existing