欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中Poetry包管理工具詳解

 更新時(shí)間:2025年11月02日 10:41:29   作者:言之。  
Poetry是Python的現(xiàn)代化一站式工具,整合了依賴管理、虛擬環(huán)境管理和打包發(fā)布功能,相比傳統(tǒng) pip+virtualenv,它通過(guò)聲明式配置和鎖文件解決依賴混亂問(wèn)題,感興趣的可以了解一下

Poetry 是 Python 的現(xiàn)代化包管理與項(xiàng)目構(gòu)建工具,目標(biāo)是統(tǒng)一項(xiàng)目依賴管理、虛擬環(huán)境管理與打包發(fā)布流程。

它解決了傳統(tǒng) Python 項(xiàng)目中常見(jiàn)的幾個(gè)痛點(diǎn):

  • pip + requirements.txt 依賴管理混亂、不易鎖定版本;
  • virtualenv 虛擬環(huán)境管理與依賴管理分離;
  • setup.py 打包發(fā)布過(guò)程復(fù)雜;
  • 不支持聲明式的依賴配置。

一句話總結(jié):
Poetry 是一個(gè)集 包依賴管理 + 虛擬環(huán)境管理 + 構(gòu)建與發(fā)布 于一體的工具。

二、Poetry 的核心特性

功能說(shuō)明
?? 統(tǒng)一依賴管理通過(guò) pyproject.toml 聲明依賴,自動(dòng)生成鎖文件 poetry.lock,確保依賴可重現(xiàn)性。
?? 自動(dòng)虛擬環(huán)境自動(dòng)創(chuàng)建并管理獨(dú)立的虛擬環(huán)境,無(wú)需手動(dòng) venvvirtualenv。
?? 項(xiàng)目構(gòu)建與發(fā)布一條命令即可構(gòu)建并發(fā)布到 PyPI 或私有倉(cāng)庫(kù)。
?? 精確鎖定版本使用 poetry.lock 精確記錄依賴的版本與來(lái)源,避免“works on my machine”。
?? 聲明式配置使用 pyproject.toml(PEP 518/621 標(biāo)準(zhǔn))統(tǒng)一項(xiàng)目元數(shù)據(jù)與依賴信息。

三、Poetry vs pip + virtualenv

對(duì)比項(xiàng)pip + virtualenvPoetry
依賴聲明requirements.txtpyproject.toml
依賴鎖定手動(dòng)自動(dòng)生成 poetry.lock
虛擬環(huán)境需手動(dòng)創(chuàng)建與激活自動(dòng)創(chuàng)建與管理
構(gòu)建發(fā)布需編寫(xiě) setup.pypoetry build + poetry publish
版本沖突處理手動(dòng)調(diào)試內(nèi)置版本解析器自動(dòng)解決
可重現(xiàn)環(huán)境強(qiáng)(依賴鎖定)

四、Poetry 安裝

推薦使用官方安裝腳本:

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

安裝后可檢查版本:

poetry --version

安裝路徑通常位于 ~/.local/bin/poetry(Linux/Mac)或 %APPDATA%\pypoetry(Windows)。

五、Poetry 項(xiàng)目結(jié)構(gòu)

創(chuàng)建新項(xiàng)目:

poetry new myproject

生成的目錄結(jié)構(gòu)如下:

myproject/
├── pyproject.toml        # 項(xiàng)目配置文件
├── poetry.lock           # 依賴鎖定文件(首次 install 后生成)
├── myproject/            # 包代碼
│   └── __init__.py
└── tests/                # 測(cè)試代碼

六、依賴管理命令

1. 添加依賴

poetry add requests

添加開(kāi)發(fā)依賴:

poetry add --dev pytest black

自動(dòng)更新 pyproject.tomlpoetry.lock。

2. 安裝依賴

poetry install

安裝指定環(huán)境下的依賴(例如生產(chǎn)):

poetry install --without dev

3. 移除依賴

poetry remove requests

4. 更新依賴

poetry update

5. 查看依賴樹(shù)

poetry show --tree

七、虛擬環(huán)境管理

Poetry 自動(dòng)為每個(gè)項(xiàng)目創(chuàng)建獨(dú)立虛擬環(huán)境。
常用命令如下:

命令說(shuō)明
poetry env list列出虛擬環(huán)境
poetry env info顯示當(dāng)前虛擬環(huán)境信息
poetry shell激活虛擬環(huán)境
poetry run python在虛擬環(huán)境中執(zhí)行命令(不進(jìn)入 shell)

例如:

poetry run pytest

八、構(gòu)建與發(fā)布

構(gòu)建包

poetry build

生成:

dist/
├── myproject-0.1.0.tar.gz
└── myproject-0.1.0-py3-none-any.whl

發(fā)布到 PyPI

poetry publish --build --username <user> --password <pass>

或使用 token:

poetry config pypi-token.pypi <your-token>
poetry publish --build

九、配置文件詳解:pyproject.toml

示例:

[tool.poetry]
name = "myproject"
version = "0.1.0"
description = "A simple example project"
authors = ["Alice <alice@example.com>"]
readme = "README.md"
license = "MIT"

[tool.poetry.dependencies]
python = "^3.9"
requests = "^2.31"

[tool.poetry.group.dev.dependencies]
pytest = "^8.0"
black = "^24.0"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

十、Poetry 常用工作流示例

# 初始化項(xiàng)目
poetry init

# 添加依賴
poetry add fastapi uvicorn

# 激活環(huán)境
poetry shell

# 啟動(dòng)服務(wù)
poetry run uvicorn app.main:app --reload

# 生成鎖文件并安裝依賴
poetry install

# 構(gòu)建并發(fā)布包
poetry build && poetry publish

十一、與其他工具集成

  • ? 支持 PyCharm / VS Code 自動(dòng)識(shí)別 Poetry 虛擬環(huán)境;
  • ? 可與 Docker 集成(可直接復(fù)制 .venv 或使用 poetry export 導(dǎo)出 requirements.txt);
  • ? 支持 多環(huán)境依賴管理(dev/test/prod)。

十二、實(shí)用技巧

場(chǎng)景命令
導(dǎo)出為 requirements.txtpoetry export -f requirements.txt --output requirements.txt
強(qiáng)制重新創(chuàng)建虛擬環(huán)境poetry env remove python && poetry install
僅更新某個(gè)包poetry update requests
檢查安全漏洞poetry check

? 總結(jié)

優(yōu)點(diǎn)缺點(diǎn)
統(tǒng)一依賴、環(huán)境、構(gòu)建管理首次學(xué)習(xí)曲線略高
更安全的依賴鎖定機(jī)制與某些舊版工具兼容性差
簡(jiǎn)化包發(fā)布流程CI/CD 集成需額外配置
自動(dòng)虛擬環(huán)境、可重現(xiàn)性強(qiáng)需適應(yīng)新語(yǔ)法(pyproject.toml)

到此這篇關(guān)于python中Poetry包管理工具詳解的文章就介紹到這了,更多相關(guān)python Poetry包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Python對(duì)某地區(qū)二手房房?jī)r(jià)數(shù)據(jù)分析

    詳解Python對(duì)某地區(qū)二手房房?jī)r(jià)數(shù)據(jù)分析

    這篇文章主要為大家介紹了Python數(shù)據(jù)分析某地區(qū)二手房房?jī)r(jià),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • Python繪制百分比堆疊柱狀圖并填充圖案

    Python繪制百分比堆疊柱狀圖并填充圖案

    這篇文章主要為大家詳細(xì)介紹了Python繪制百分比堆疊柱狀圖并填充圖案,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Python?input輸入超時(shí)選擇默認(rèn)值自動(dòng)跳過(guò)問(wèn)題

    Python?input輸入超時(shí)選擇默認(rèn)值自動(dòng)跳過(guò)問(wèn)題

    這篇文章主要介紹了Python?input輸入超時(shí)選擇默認(rèn)值自動(dòng)跳過(guò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 簡(jiǎn)述python Scrapy框架

    簡(jiǎn)述python Scrapy框架

    這篇文章主要介紹了python Scrapy框架的相關(guān)資料,幫助大家開(kāi)始學(xué)習(xí)python 爬蟲(chóng),感興趣的朋友可以了解下
    2020-08-08
  • python開(kāi)發(fā)利器之ulipad的使用實(shí)踐

    python開(kāi)發(fā)利器之ulipad的使用實(shí)踐

    Ulipad是一個(gè)國(guó)人limodou編寫(xiě)的專業(yè)Python編輯器,它基于wxpython開(kāi)發(fā)的GUI(圖形化界面)。下面這篇文章主要介紹了python開(kāi)發(fā)利器之ulipad的使用實(shí)踐,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-03-03
  • Python利用subplots_adjust方法解決圖表與畫(huà)布的間距問(wèn)題

    Python利用subplots_adjust方法解決圖表與畫(huà)布的間距問(wèn)題

    這篇文章主要介紹了如何在使用python?的?matplotlib庫(kù)繪圖時(shí),?使用subplots_adjust()方法來(lái)調(diào)整圖表與畫(huà)布之間的間距,以及圖表與圖表之間的間距,感興趣的可以了解一下
    2022-04-04
  • sklearn-SVC實(shí)現(xiàn)與類參數(shù)詳解

    sklearn-SVC實(shí)現(xiàn)與類參數(shù)詳解

    今天小編就為大家分享一篇sklearn-SVC實(shí)現(xiàn)與類參數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • Django User 模塊之 AbstractUser 擴(kuò)展詳解

    Django User 模塊之 AbstractUser 擴(kuò)展詳解

    這篇文章主要介紹了Django User 模塊之 AbstractUser 擴(kuò)展詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • python發(fā)騰訊微博代碼分享

    python發(fā)騰訊微博代碼分享

    本文介紹了利用qwebview寫(xiě)的一個(gè)發(fā)騰訊微博的功能,大家可以改成新浪微博,原理是一樣的,大家參考使用吧
    2014-01-01
  • Django haystack實(shí)現(xiàn)全文搜索代碼示例

    Django haystack實(shí)現(xiàn)全文搜索代碼示例

    這篇文章主要介紹了Django haystack實(shí)現(xiàn)全文搜索代碼示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評(píng)論