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

47 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
author: deng
date: "20250116"
category: Note
tags:
- Python
- Poetry
- Dependency
- Note
---
![cover](resources/poetry.png)
- Abstract
- 新時代的Python環境管理器支援Python3.9+、多平台以及[pyproject.toml](https://packaging.python.org/en/latest/guides/writing-pyproject-toml/)功能全面適合管理複雜的開發專案以下內容大部分以Poetry2.0版本規範為主。
- Resources
- [Installation](https://python-poetry.org/docs/#installation) - Poetry Official Doc
- [Python 套件管理器——Poetry 完全入門指南](https://blog.kyomind.tw/python-poetry/) - Code and Me
- 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``