首页 论坛 置顶 使用 Poetry 管理 Python 依赖

正在查看 1 个帖子:1-1 (共 1 个帖子)
  • 作者
    帖子
  • #13328

    引言

    在Python项目中管理依赖关系往往会变得繁琐,尤其是当项目复杂性增加时。Poetry是一款现代化的依赖管理和打包工具,它简化了这一过程,提供了一种高效的方式来创建、管理和分发Python项目。


    使用案例

    与传统的依赖管理工具如pipvenv相比,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.mdsrctestspyproject.toml

    poetry new poetry-test

    输出目录结构

    然而,更加推荐使用 poetry init 来初始化项目中的 Poetry。这可以手动配置目录结构。

    您可以在 GitHub 仓库 中找到本文使用的代码

    1) 创建项目目录:

    mkdir poetry-test && cd poetry-test

    2) 初始化 Poetry:

    这将运行一个交互式模块,您可以根据需要输入值。
    运行后将只创建一个 pyproject.toml

    poetry init
    
    poetry init

    3) 设置目录结构:

    在本文中,我们将创建一个简单的 fastapi 端点,因此我将遵循 fastapi 应用程序的一般目录结构,并附上一个 README.md 文件。

    dir structure

    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 freezepip list

    8) poetry show –tree – 以树形结构列出已安装的依赖项(推荐使用)。

正在查看 1 个帖子:1-1 (共 1 个帖子)
  • 哎呀,回复话题必需登录。