python新一代库管理工具poetry

news/2025/3/17 16:54:56/文章来源:https://www.cnblogs.com/flyxi/p/18777160

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/aa718840686e42789f480cde02424f44.png)


`Poetry` 是一个用于 [Python 项目](https://so.csdn.net/so/search?q=Python%20%E9%A1%B9%E7%9B%AE&spm=1001.2101.3001.7020)依赖管理和打包的工具。它使得项目的管理、依赖安装和打包等操作更加简单和高效。下面是一些常用的 `Poetry` 命令及其解释:
## 0. poetry的安装,不推荐使用pip安装
- [poetry的官网](https://python-poetry.org/docs/#installing-with-the-official-installer)

```js
官网推荐的是:-> 在 Windows PowerShell 中运行以下命令安装 Poetry:

(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
```
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/52e92df1965e41f5bf5c2fcb4bff6c74.png)


## 1. 初始化项目
- poetry new \<project-name\> 创建一个新的 Python 项目。

```python
poetry new my_project

会生成一个新的文件夹 my_project,其中包含一个基础的 Python 项目结构(pyproject.toml、README.rst、tests 等)。
```

- poetry init 在现有目录中初始化一个新的 pyproject.toml 文件,并逐步引导你配置项目的元数据和依赖项。

## 2.依赖管理
- poetry add \<package\> 向项目中添加一个新的依赖包。默认安装最新版本。
```js
poetry add requests

你可以通过指定版本来安装特定版本:

poetry add requests@2.25.0

```
- poetry add \<package\> --dev 向项目中添加开发依赖(例如用于测试、构建工具等)。这些依赖不会出现在生产环境中。

```js
poetry add pytest --dev
```

- poetry remove \<package\> 移除项目中的某个依赖包。
```js
poetry remove requests
```
- poetry show 显示当前项目的所有已安装依赖及其版本信息。

```js
poetry show
```

- poetry show \<package\> 显示指定包的信息(如版本、依赖关系等)。

```js
poetry show requests
```

## 3. 虚拟环境管理
- poetry install 安装项目中列出的所有依赖包,基于 pyproject.toml 和 poetry.lock 文件。这个命令会自动创建虚拟环境(如果尚未创建)。
```js
poetry install
```

- poetry update 更新所有依赖包到最新版本(符合 pyproject.toml 中的版本要求)。
```js
poetry update
```

- poetry env info 查看当前虚拟环境的信息。
```js
poetry env info
```
- poetry env list 列出所有虚拟环境。


```js
poetry env list
```

- poetry shell 激活虚拟环境,进入一个新的 shell 会话。

```js
poetry shell
```

- poetry run <command> 在项目的虚拟环境中执行命令。例如,运行 pytest 进行测试:

```js
poetry run pytest
```

## 4. 构建和打包
- poetry build 构建项目包,将其打包为 .tar.gz 和 .whl 文件,准备发布到 PyPI 或其他包管理平台。
```js
poetry build
```

- poetry publish 将项目包发布到 PyPI 或其他指定的 Python 包索引。

```js
poetry publish --build
```
- 发布时可以指定上传的包索引:
```js
poetry publish --repository <repository-name> --build
```

## 5. 项目发布
- poetry version 查看或更新项目的版本。你可以使用以下选项来增加版本:
- poetry version patch (增加补丁版本)
- poetry version minor (增加次版本)
- poetry version major (增加主版本)
- poetry version \<version\> (设置一个指定的版本号)
> 示例:

```js
poetry version patch poetry version 1.2.0
```

## 6. 其他命令
- poetry check 检查 pyproject.toml 文件和项目的完整性,确保没有错误。
```js
poetry check
```

- poetry lock 锁定项目的依赖版本并生成或更新 poetry.lock 文件。通常在更改依赖或版本时自动运行。
```js
poetry lock
```
- poetry config 配置 Poetry 设置(如缓存目录、PyPI 源等)。
```js
poetry config --list poetry config cache-dir /path/to/cache

```

- poetry help 查看帮助信息,列出所有可用命令和选项。

```js
poetry help
```

## 7. 示例项目流程
### 7.1 初始化项目:

```js
poetry new my_project
```

### 7.2 添加依赖:
```js
poetry add requests
```
### 7.3 安装依赖:


```js
poetry install
```
### 7.4 激活虚拟环境并运行代码:


```js
poetry shell python my_project/main.py
```

### 7.5 构建项目:


```js
poetry build
```

### 7.6 发布到 PyPI:
```js
poetry publish --build
```

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

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

相关文章

304跳转如何避免

1.什么是304跳转 当浏览器发起请求时,如果资源(index.html或者js)没有改变(例如文件没有被修改),服务器就会返回 304 状态码,表示该资源自上次请求以来没有被修改过,客户端可以继续使用本地缓存的副本,而不需要重新下载资源。 2. 如何避免304跳转 2.1 如果是nginx代理# …

LiveGBS国标GB28181国标平台分布式集群部署 以及多服务器动态负载均衡的技术方案在智慧工地、平安城市、智慧交通、智慧城市、交通枢纽、跨区域联网监控视频平台等大型视频流媒体项目如何实现

@目录1、大型容灾GB28181国标流媒体服务1.1、需求背景1.2、高可用分布式方案2、方案详解2.1、 百万路视频接入2.2、几百上千路高并发请求播放2.3、信令服务主备方式 1、大型容灾GB28181国标流媒体服务 1.1、需求背景 大型视频监控平台项目的常见需求高并发 高可用性 容灾备份 跨…

变量、常量及其初始化和命名规范

变量:public class HelloWorld250316 { //实例变量 从属于对象,如果不自行初始化,这个类型的默认值 0 0.0 u000,布尔类型默认false //除了基本类型,其余的默认值都是null String name; int age; public static void main(String[] args) { int a=10; System.out.println(a…

必剪使用指南

必剪使用指南 目录必剪使用指南下载快捷键文件剪辑编辑显示标记下载 必剪官网:https://bcut.bilibili.cn/.快捷键 文件新建草稿:ctrl + n 保存草稿:ctrl + s 导入:ctrl + i 导出:ctrl + e 退出:ctl + q剪辑分割工具:c 选择工具:v 分割:x编辑复制:ctrl + c 剪切:ctrl…

python运算注意点

1、整除// 9//2得出为4,被除数在前。 取余% 9%2得出1 2、round()函数,表示四舍五入,奇进偶不进 例:round(3.5)为4 round(6.5)为6 3、赋值 多变量赋值,直接用,隔开。 赋值加运算(先运算再赋值,也就是先乘2*3=6,直接赋值给b)4、逻辑运算符有一种优化机制,短…

Bernoulli Equation

伯努利方程 伯努利方程并非一个独立的定律,而是在不同条件下由 Navier-Stokes 动量方程(式1)和能量方程(式2)推导而来的。 \[\rho\left(\frac{\partial u_{j}}{\partial t} + u_{i}\frac{\partial u_{j}}{\partial x_{i}}\right)=-\frac{\partial p}{\partial x_{j}}+\rho…

社区演讲-基于.NET 技术栈的研发过程管理和智能化探索

Hi all 2024年11月23日,我作为【项目管理实践探索者大会】专题讲师,给社区分享了主题《基于.NET 技术栈的研发过程管理和智能化探索》 现场参与人数:100+ 演讲议题介绍: 体系建设:如何设计一个合适的研发过程管理体系 平台提效:通过.NET技术构建任务驱动+流程驱动,释放研…

halcon 深度学习教程(二)halcon基于深度学习的OCR检测

原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/18777081深度学习教程目录如下,还在继续更新完善中 深度学习系列教程目录 本篇非常简单,但是非常好用的OCR识别,传统的OCR识别方法一大堆各种各样的操作,麻烦的要死。halcon 22版本开始支持深度学习OCR,并且…

[ SpringMVC ] SpringMVC如何通过是否有@RestController注解来判断返回ModelAndView还是Json

引言之前在面试的遇到面试官问我SpringMVC的执行流程,我那时候回答的是SpringMVC的DispatcherServlet的dodispatch方法找到ControllerMethod之后将返回值通过convert成Json返回响应体,事后想了一下回答的其实并不正确,因为SpringMVC之前学习的时候有使用ModelAndView返回视图,我…

从HR+AI到AI+HR,企业人力资源AI进程已过半

一、人力资源管理智能化应势而上,核心价值受企业管理层肯定 过往各项研究表明,AI 已经被广泛应用于企业经营的各个环节中。根据易路于2023 年发布的《AI 在企业人力资源中的应用白皮书1.0》(以下简称《白皮书1.0》),我们可以明确感受到:AI 已不同程度应用于招聘管理、员工…

multi-object tracking in the dark

创新点:构建LMOT数据集:开发了一种双摄像头系统,同步采集明暗视频帧,形成高度对齐的低光视频对,并提供高质量的多目标跟踪标注。该数据集包含大量城市户外场景视频,涵盖多种动态物体,为模型训练和评估提供了丰富的数据支持。 提出LTrack方法:引入自适应低通下采样模块(…

LGP11831_1 [UPTS 2025] 追忆 学习笔记

LGP11831_1 [UPTS 2025] 追忆 学习笔记 Luogu Link 前言 又幻想了……唉! 幻想自己场切这道题,最后标准分上升至 \(\text{598pts}\),翻掉了 \(\text{yyz}\),不至于一点脸不要。 本题解基本借鉴这篇题解。 题意简述 给定一个 \(n\) 点 \(m\) 边的简单有向图 \(G\),有 \(m\)…