首页 › 论坛 › 置顶 › 使用 Poetry 管理 Python 依赖
-
作者帖子
-
2025-02-28 15:49 #13328Q QPY课程团队管理员
引言
在Python项目中管理依赖关系往往会变得繁琐,尤其是当项目复杂性增加时。Poetry是一款现代化的依赖管理和打包工具,它简化了这一过程,提供了一种高效的方式来创建、管理和分发Python项目。
使用案例
与传统的依赖管理工具如
pip
和venv
相比,Poetry提供了几个优势:1) 简化的依赖管理:与
requirements.txt
不同,Poetry使用pyproject.toml
文件来更有效地处理依赖关系。2) 自动虚拟环境:Poetry会自动为您的项目创建和管理虚拟环境。
3) 语义版本控制:它确保依赖关系遵循语义版本控制,从而减少兼容性问题。
4) 轻松发布:只需一个命令,您就可以将您的包发布到PyPI。
虽然有很多使用案例,但在本文中,我们将重点介绍如何使用Poetry设置项目并管理其依赖关系。
安装
最简单的方法是使用 pipx,因为它会在隔离的环境中安装包。
如果您没有安装 poetry,可以从 这里进行安装。
pipx install poetry
还有其他安装方法列在 这里。
项目设置
有几种方法可以使用 poetry 设置你的项目。
在官方 poetry 文档中,推荐使用
poetry new <project-name>
。这将创建一个以项目名称命名的文件夹,并生成一些模板文件,包括README.md
、src
、tests
和pyproject.toml
。然而,更加推荐使用
poetry init
来初始化项目中的 Poetry。这可以手动配置目录结构。您可以在 GitHub 仓库 中找到本文使用的代码
1) 创建项目目录:
mkdir poetry-test && cd poetry-test
2) 初始化 Poetry:
这将运行一个交互式模块,您可以根据需要输入值。
运行后将只创建一个pyproject.toml
。3) 设置目录结构:
在本文中,我们将创建一个简单的 fastapi 端点,因此我将遵循 fastapi 应用程序的一般目录结构,并附上一个
README.md
文件。4) 安装依赖:
目前我们只有一个依赖 – “fastapi[standard]”。
poetry add "fastapi[standard]"
您也可以指定特定版本。运行此命令将更新
pyproject.toml
文件并创建一个poetry.lock
文件。5) Fastapi 端点代码:
将此代码添加到
app/main.py
文件中。from fastapi import FastAPI app = FastAPI()
@app.get("/") async def root(): return {"message": "Hello World"}
现在要运行这个服务器,请执行
poetry run fastapi dev app/main.py
然后访问 http://localhost:8000/。
就这样,服务器已启动。
Poetry 命令
现在让我们来看看我们使用的 Poetry 命令(以及一些其他命令),以了解它们的具体作用。
1) poetry init – 交互式初始化一个 Poetry 项目。
2) poetry add – 向环境中添加一个依赖。
3) poetry add –dev – 向环境中添加一个开发依赖。
4) poetry install – 如果你有一个
pyproject.toml
文件,可以运行此命令来安装依赖。类似于
pip install -r requirements.txt
5) poetry run – 这允许我们在 poetry 环境中运行命令,而无需实际进入该环境。
6) poetry shell – 这允许您进入 poetry 环境。
类似于
sourcing
虚拟环境。在较新的 poetry 版本中,shell 命令并不是内置的,而需要作为插件安装。
可以使用以下命令完成此操作 –pipx inject poetry poetry-plugin-shell
7) poetry show – 列出已安装的依赖项。
类似于
pip freeze
或pip list
8) poetry show –tree – 以树形结构列出已安装的依赖项(推荐使用)。
-
作者帖子
- 哎呀,回复话题必需登录。