poetry,一个超实用的 Python 库!

文章目录

  • 什么是 Python Poetry?
  • 安装 Python Poetry
  • Python Poetry 的主要特性
    • 1. 简洁易用的依赖定义
    • 2. 虚拟环境管理
    • 3. 依赖解析和锁定
    • 4. 包管理和发布
  • 使用 Python Poetry 管理项目依赖
    • 1. 创建新项目
    • 2. 添加依赖
    • 3. 安装依赖
    • 4. 移除依赖
    • 5. 更新依赖
    • 6. 查看当前依赖列表
    • 7. 创建锁文件
    • 8. 导出依赖列表
  • 总结

大家好,今天为大家分享一个超实用的 Python 库 - poetry。

Github地址:https://github.com/python-poetry/poetry

在 Python 开发领域,项目依赖管理是一个至关重要的问题。Python Poetry 是一个现代化的项目依赖管理工具,旨在简化 Python 项目的依赖管理和打包发布过程。本文将深入探讨 Python Poetry 的特性、用法以及如何利用它来管理 Python 项目的依赖。

什么是 Python Poetry?

Python Poetry 是一个专注于 Python 项目依赖管理的工具,它提供了一种简洁而强大的方式来定义项目依赖、创建虚拟环境、构建和发布 Python 包。与传统的依赖管理工具相比,Python Poetry 具有更加简洁的语法、更加直观的操作界面和更高效的依赖解析算法,使得项目的依赖管理变得更加简单和可靠。

安装 Python Poetry

要安装 Python Poetry,可以使用 pip 命令:

pip install poetry

安装完成后,就可以在命令行中使用 poetry 命令了。

Python Poetry 的主要特性

1. 简洁易用的依赖定义

Python Poetry 使用 pyproject.toml 文件来定义项目的依赖和配置信息,这种格式简洁明了,易于理解和维护。通过 pyproject.toml 文件,用户可以轻松地指定项目依赖、Python 版本、项目元数据等信息。

示例代码:

# pyproject.toml[tool.poetry]
name = "myproject"
version = "0.1.0"
description = "My Python project"
authors = ["Your Name <you@example.com>"][tool.poetry.dependencies]
python = "^3.8"
requests = "^2.25.1"[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

2. 虚拟环境管理

Python Poetry 自动为每个项目创建独立的虚拟环境,这样可以确保项目的依赖不会与系统的 Python 环境产生冲突。用户可以在虚拟环境中安装和管理项目的依赖,保持项目的环境隔离性。

示例代码:

# 创建虚拟环境
poetry env use python3.8# 激活虚拟环境
poetry shell

3. 依赖解析和锁定

Python Poetry 使用锁文件(poetry.lock)来记录项目依赖的精确版本信息,这样可以确保项目在不同环境下的依赖一致性。Poetry 还提供了强大的依赖解析算法,可以有效地解决依赖冲突和版本兼容性问题。

示例代码:

# 安装项目依赖并生成锁文件
poetry install# 更新依赖并重新生成锁文件
poetry update

4. 包管理和发布

Python Poetry 提供了一套完整的包管理和发布工具,可以帮助用户管理项目的依赖、构建 Python 包并发布到 PyPI 或私有仓库。这大大简化了项目的打包和发布过程,使得项目的维护和分享变得更加便捷。

示例代码:

# 构建 Python 包
poetry build# 发布到 PyPI
poetry publish

使用 Python Poetry 管理项目依赖

1. 创建新项目

首先,需要创建一个新的 Python 项目。

可以通过以下命令来创建一个新的项目:

poetry new myproject
cd myproject

这将会在当前目录下创建一个名为 myproject 的新项目,并生成一些基本的文件结构。

2. 添加依赖

一旦项目创建完成,就可以开始添加项目所需的依赖。

可以使用以下命令来添加依赖:

poetry add requests

这将会向项目中添加一个名为 requests 的依赖。

还可以一次性添加多个依赖,例如:

poetry add requests beautifulsoup4 numpy

3. 安装依赖

添加完依赖之后,需要将这些依赖安装到项目中。

可以使用以下命令来安装依赖:

poetry install

这将会根据 pyproject.toml 文件中的依赖列表来安装项目的依赖,并创建一个虚拟环境来隔离这些依赖。

4. 移除依赖

如果不再需要某个依赖,可以使用以下命令来将其从项目中移除:

poetry remove requests

这将会从项目中移除名为 requests 的依赖。

5. 更新依赖

当依赖的版本发生变化或者想要更新依赖到最新版本时,可以使用以下命令来更新依赖:

poetry update

这将会检查项目中的依赖,并更新到最新版本。

6. 查看当前依赖列表

可以使用以下命令来查看当前项目的依赖列表:

poetry show --tree

这将会列出项目中所有的依赖及其依赖关系树。

7. 创建锁文件

Python Poetry 使用锁文件(poetry.lock)来记录项目依赖的精确版本信息。

可以使用以下命令来生成锁文件:

poetry lock

这将会根据 pyproject.toml 文件中的依赖列表生成锁文件,并记录每个依赖的精确版本信息。

8. 导出依赖列表

有时候需要将项目的依赖列表导出到一个文件中,以便与他人分享或备份。

可以使用以下命令来导出依赖列表:

poetry export --dev -f requirements.txt --without-hashes > requirements.txt

这将会将项目的依赖列表导出到一个名为 requirements.txt 的文件中,同时还包括开发环境中的依赖(–dev 参数)。

总结

Python Poetry 是一个现代化、简洁而强大的 Python 项目依赖管理工具,为 Python 开发者提供了一种便捷和可靠的方式来管理项目依赖、创建虚拟环境、构建和发布 Python 包。通过使用 Poetry,开发者可以更加轻松地管理和分享自己的 Python 项目。希望本文能够帮助大家深入了解 Poetry,并在实际项目中加以应用!

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/684366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA工程与模块管理

一、IDEA项目结构 层级关系&#xff1a; project(工程) - module(模块) - package(包) - class(类)具体的&#xff1a; 一个project中可以创建多个module一个module中可以创建多个package一个package中可以创建多个class二、Project和Module的概念 在 IntelliJ IDEA 中&…

机器学习——聚类问题

&#x1f4d5;参考&#xff1a;西瓜书ysu老师课件博客&#xff08;3&#xff09;聚类算法之DBSCAN算法 - 知乎 (zhihu.com) 目录 1.聚类任务 2.聚类算法的实现 2.1 划分式聚类方法 2.1.1 k均值算法 k均值算法基本原理&#xff1a; k均值算法算法流程&#xff1a; 2.2 基于…

MySQL 基础入门指南:从安装到基本操作

一、简介 MySQL 是一种流行的开源关系型数据库管理系统&#xff0c;被广泛用于各种规模和类型的应用程序中。如果您对 MySQL 还不熟悉&#xff0c;本文将为您提供一个基础的入门指南&#xff0c;从安装到基本操作。 1.1 安装 MySQL 首先&#xff0c;您需要下载并安装 MySQL。…

GD32F303VET6裸板调试遇到问题

1、开始串口中断的时候会死机&#xff1a;nvic_irq_enable(USART0_IRQn, 3, 0); 解决&#xff1a;要设置中断优先级分组: nvic_priority_group_set(NVIC_PRIGROUP_PRE4_SUB0); 2、初始化的时候多几次使用 printf 会HardFault_Handler&#xff1a; 解决&#xff1a;因为RTOS中…

《剑指offer》

本专题是分享剑指offer的一些题目&#xff0c;开始刷题计划。 二维数组的中的查找【https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId13&tqId11154&ru/exam/oj】 描述 在一个二维数组array中&#xff08;每个一维数组的长度相同&#xff0…

大端和小端传输字节完整版

大端和小端传输字节序 大端和小端一、最高有效位、最低有效位1.MSB(Most significant Bit)最高有效位2.LSB(Least Significant Bit)最低有效位 二、内存地址三、大端和小端四、网络字节序和主机字节序五、C#位操作符六、C#中关于大端和小端的转换七、关于负数八、关于汉字编码以…

论文阅读 - Non-Local Spatial Propagation Network for Depth Completion

文章目录 1 概述2 模型说明2.1 局部SPN2.2 非局部SPN2.3 结合置信度的亲和力学习2.3.1 传统正则化2.3.2 置信度引导的affinity正则化 3 效果3.1 NYU Depth V23.2 KITTI Depth Completion 参考资料 1 概述 本文提出了一种非局部的空间传播网络用于深度图补全&#xff0c;简称为…

Docker安装Harbor

参考文档&#xff1a; Docker安装Harbor[基础服务] [Docker] Harbor 安装和配置

边缘计算:重塑数字世界的未来

引言 随着物联网&#xff08;IoT&#xff09;设备的激增和5G网络的普及&#xff0c;我们正站在一个计算模式的新纪元门槛上——边缘计算。这一技术范式将数据处理和分析推向网络的边缘&#xff0c;即设备或终端&#xff0c;为实时性要求较高的应用提供了前所未有的可能性。 目…

代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

文章目录 977.有序数组的平方题目代码思考 209.长度最小的子数组题目代码思考 59.螺旋矩阵II题目代码思考 977.有序数组的平方 题目 题目链接&#xff1a;https://leetcode.cn/problems/squares-of-a-sorted-array/ 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返…

【开源】新生报到网站 JAVA+Vue.js+SpringBoot+MySQL

本文项目编号&#xff1a; T 002 。 \color{red}{本文项目编号&#xff1a;T002。} 本文项目编号&#xff1a;T002。 目录 1 功能模块1.1 在线交流模块1.2宿舍分配模块1.3 校园概况模块1.4 专业管理模块 2 系统展示3 核心代码3.1 图表展示3.2 查询评论3.3 新增报道 4 免责声明 …

2024春节联欢晚会刘谦魔术分析

春晚已经越来越拉胯了&#xff0c;看着节目单没一个能打的&#xff0c;本来想说&#xff1a;办不起&#xff0c;就别办呗。 没想到第二天刘谦的魔术以一种很奇特的姿势火起来了&#xff0c;干脆蹭个热度&#xff0c;分析下魔术的原理。 魔术1 这个不算什么新奇的节目&#xf…

android aidl进程间通信封装通用实现

接上一篇的分析,今天继续 aidl复杂流程封装-CSDN博客 今天的任务就是将代码梳理下放进来 1 项目gradle配置: 需要将对应的代码放到各自的目录下,这里仅贴下关键内容,细节可以下载代码慢慢看 sourceSets { main { manifest.srcFile src/main/And…

django-filter使用

在 Django 中&#xff0c;django-filter 是一个第三方库&#xff0c;它提供了易于使用和灵活的过滤功能&#xff0c;用于 Django 的视图和 API。使用 django-filter&#xff0c;你可以轻松地为你的模型创建查询集过滤器&#xff0c;并将其应用于你的视图和 API 端点&#xff0c…

春晚后台撒贝宁意外“踩高跷”,尼格买提内增高秘密笑翻全场。

♥ 为方便您进行讨论和分享&#xff0c;同时也为能带给您不一样的参与感。请您在阅读本文之前&#xff0c;点击一下“关注”&#xff0c;非常感谢您的支持&#xff01; 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 龙年春晚无疑是观众们热议的焦点&#xff01;除了尼格买提表演…

【开源训练数据集3】Top3人脸数据集及其使用方法-计算机视觉应用

目录 什么是人脸数据集? Top 3 人脸数据集 CelebFaces Attributes (CelebA)数据集 Flickr-Faces-HQ (FFHQ) 数据集 野外标记面孔 (LFW) 使用先进的人脸数据集 CelebA 访问数据集 在 Pytorch 中使用 CelebA 在 Tensorflow 中使用 CelebA Flickr-Faces-HQ 数据集 (FFH…

Spring Task定时任务

目录 1、介绍 2、cron表达式 2.1、在线生成器 2.2、通配符 3、代码示例 3.1、使用步骤 3.2、 代码开发 3.3、测试 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#xff0c;擅长web应用开发…

windows vs 自己编译源码 leveldb 然后使用自己编译的文件

1 准备源码文件 1.1 第一种方法 git下载源码 vs项目中git leveldb源码和git third_party googletest-CSDN博客 1.2 第二种方法 手动下载 然后把第三方的源码下载 复制到 third_party 对应的文件夹中 没有文件夹 third_party -> powershell mkdir third_party 2 编译lev…

数据库第二次实验

目录 1 实验内容 2 SQL代码及运行截图 2.1 创建表并插入数据 2.1.1 创建表 2.1.2 插入数据 2.1.3 运行截图 2.2 修改表 2.2.1 SQL代码 2.2.2 运行截图 2.3 删除操作 2.3.1 SQL代码 2.3.2 运行截图 2.4 数据库的备份 2.5 数据库的恢复 1 实验内容 实验目的&#…

SG3225EEN晶体振荡器规格书

SG3225EEN 晶振是EPSON/爱普生的一款额定频率25 MHz至500 MHz的石英晶体振荡器&#xff0c;6脚贴片&#xff0c;LV-PECL输出&#xff0c;3225封装常规有源晶振&#xff0c;具有小尺寸&#xff0c;轻薄型&#xff0c;高稳定性&#xff0c;低相位抖动&#xff0c;低电源电压&…