我们相信:世界是美好的,你是我也是。 来玩一下解压小游戏吧!

Python项目中,依赖管理是开发过程中非常重要的一环。Poetry是一个现代化的Python依赖管理工具,它通过 pyproject.toml 文件来管理项目配置,与传统的 pip+requirements.txt 文件相比,提供了更强大的功能和更好的用户体验。本文中,苏南大叔根据实际项目,介绍Poetry的核心文件及其使用方法,重点讨论如何配置镜像源以加速依赖安装。

苏南大叔:对标pip,如何使用poetry管理python项目依赖与配置? - poetry管理依赖
对标pip,如何使用poetry管理python项目依赖与配置?(图7-1)

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境:win10python@3.12.9pip@25.0.1poetry@2.1.2poetry更像是个pip+venv(虚拟环境)的角色。或者说像nodenpm i -D的一个角色。

poetry是什么

Poetry 是一个功能强大的依赖管理工具,用于管理 Python 项目的依赖性、构建和发布。它旨在替代旧的工具如 pip、virtualenv 和 setuptools,提供一个简单且全面的解决方案来处理 Python 项目的包管理。

苏南大叔:对标pip,如何使用poetry管理python项目依赖与配置? - poetry官方网站
对标pip,如何使用poetry管理python项目依赖与配置?(图7-2)

安装 poetry

虽然某种意义上来说,poetrypip的竞品。但是,安装poetry最好最简单的方法依然是通过pip进行安装。

pip install poetry

苏南大叔:对标pip,如何使用poetry管理python项目依赖与配置? - poetry安装
对标pip,如何使用poetry管理python项目依赖与配置?(图7-3)

可以使用下面的命令,查看poetry的版本号。

poetry --version

与 pip 的区别

功能Poetrypip
配置文件pyproject.tomlrequirements.txt
依赖版本锁定poetry.lockrequirements.txt + pip freeze
支持的功能依赖管理、打包、发布仅依赖安装
镜像源配置支持全局和项目级镜像源通过 pip.conf 或命令行参数

Poetry提供了更现代化的依赖管理方式,尤其是在团队协作和可持续集成和部署的CI/CD场景下,能够显著提升开发效率。

Poetry 核心文件

Poetry使用以下几个文件来管理项目和依赖:

  • pyproject.toml 【非常重要,没有它,poetry命令就拒绝执行】

这是 Poetry 的核心配置文件,包含项目的元信息(如名称、版本、作者等)以及依赖声明,非常重要的问题。

  • poetry.toml

这是Poetry的用户配置文件,可以位于项目根目录下面。可以用于配置全局设置,例如镜像源、缓存路径等。

  • poetry.lock

该文件记录了项目依赖的具体版本及其哈希值,确保团队成员或CI/CD(持续集成和交付)环境安装的依赖版本一致。当pyproject.toml发生变化的时候,这个文件会监控的到。(和npmlock文件是有较大区别的)

Poetry管理依赖项

以下是一些常用的 Poetry 管理依赖项目的命令:

初始化

  • 初始化项目
    使用 poetry init 命令交互式创建 pyproject.toml 文件。

苏南大叔:对标pip,如何使用poetry管理python项目依赖与配置? - poetry-init
对标pip,如何使用poetry管理python项目依赖与配置?(图7-4)

  • 新建项目
    使用 poetry new <folder> 命令交互式创建 pyproject.toml 文件及其它项目文件。

苏南大叔:对标pip,如何使用poetry管理python项目依赖与配置? - poetry-new
对标pip,如何使用poetry管理python项目依赖与配置?(图7-5)

添加和移除

  • 添加依赖
    使用 poetry add <package> 添加依赖。例如添加requests包:

    poetry add requests

苏南大叔:对标pip,如何使用poetry管理python项目依赖与配置? - poetry-add
对标pip,如何使用poetry管理python项目依赖与配置?(图7-6)

  • 移除依赖
    使用 poetry remove <package> 移除依赖。

安装和更新

  • 安装依赖
    使用 poetry install 安装项目中声明的所有依赖。
  • 更新依赖
    使用 poetry update 更新所有依赖到最新版本。
注意:只有poetry install,后面没有任何参数。安装某个包的命令是poetry add <package>

配置文件

poetry.toml 是 Poetry 的用户配置文件,通常位于用户主目录下的 Poetry 配置目录中。具体路径如下:

  • Linux/macOS: ~/.config/pypoetry/poetry.toml
  • Windows: %APPDATA%\pypoetry\poetry.toml
    通常是:C:\Users\<用户名>\AppData\Roaming\pypoetry\config.toml

苏南大叔:对标pip,如何使用poetry管理python项目依赖与配置? - poetry-config-list
对标pip,如何使用poetry管理python项目依赖与配置?(图7-7)

如果文件不存在,可以通过运行以下命令生成默认配置:

poetry config --list

也可以通过下面的命令修改配置,例如:

poetry config repositories.pypi https://pypi.tuna.tsinghua.edu.cn/simple

配置镜像【待展开】

在国内使用 Poetry 时,由于网络原因,可能会遇到依赖安装缓慢的问题,可以通过配置镜像源来解决这一问题。本文就简要说明了,后续单独展开讨论。

全局镜像源

编辑全局配置文件 poetry.toml,添加如下内容:

[repositories]
pypi = { url = "https://pypi.tuna.tsinghua.edu.cn/simple" }

项目镜像源

也可以在 pyproject.toml 文件中为特定项目配置镜像源:

[[tool.poetry.source]]
name = "tsinghua"
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = true

注意:这里是双[],具体上来说,可能是表示这是个可以多配置的项目吧。

运行脚本

使用poetry run python py.py和直接 python py.py ,是有区别的。

  • poetry run:确保脚本运行在项目的虚拟环境中,避免依赖冲突。
  • 直接运行:使用全局环境,可能不适合复杂项目。

poetry run python py.py

poetry run python script.py

运行环境:在 Poetry 管理的虚拟环境中运行脚本。
依赖管理:确保脚本运行时使用的是 pyproject.toml 中定义的依赖版本。
适用场景:当项目依赖特定的 Python 包版本或需要隔离环境时使用。

python py.py

python script.py

运行环境:直接使用系统全局的 Python 环境。
依赖管理:依赖的包可能来自全局环境,容易出现版本冲突或缺少依赖的问题。
适用场景:简单脚本或无需依赖隔离的情况。

总结

Poetry是一个强大的Python依赖管理工具,通过pyproject.toml 文件实现了统一的项目配置。它不仅简化了依赖管理,还提供了锁定依赖版本的功能,确保项目的可重复性。

在国内使用时,通过配置镜像源可以有效解决网络问题。相比传统的pip工具,Poetry更加现代化,是管理Python项目的理想选择。

更多苏南大叔的python文章,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python