『Python学习笔记』Python环境管理器—Poetry入门指南

news2024/9/27 19:25:08
Python环境管理器—Poetry入门指南

文章目录

  • 一. 基础知识
    • 1. Poetry是什么?
    • 2. 名词解释:虚拟环境管理、模块管理、模块依赖管理
    • 3. pip的不足
  • 二. 从零开始使用Poetry
    • 1. 安装Poetry
    • 2. 初始化Poetry
    • 3. 管理Poetry 虚拟环境
    • 4. 修改config,建立专案内.venv虚拟环境
    • 5. 启动与退出虚拟环境
    • 6. Poetry 指令
      • 6.1. Poetry 新增套件
      • 6.2. poetry.lock与更新顺序
      • 6.3. poetry lock:更新poetry.lock
    • 7. 指定套件「版本」范围
      • 7.1. Poetry 的版本管理能力
    • 8. 新增套件至dev-dependencies
    • 9. Poetry 更新套件
    • 10. 列出全部套件清单
    • 11. 「树状」显示套件依赖层级
    • 12. Poetry移除套件(remove)
    • 13. 输出requirements.txt
    • 14. 输出dev-dependencies
    • 15. Poetry 常用指令清单
  • 三. Poetry 常见使用情境与操作QA
    • 1. 新增专案并使用Poetry
    • 2. 现有项目改用Poetry
    • 3. 在别台主机上重现项目的Poetry虚拟环境
    • 4. 我想要移除并重建虚拟环境
    • 5. 为什么我不在Docker 环境中使用Poetry?
    • 6. 我可以使用自己习惯的virtualenv 吗?
    • 7. 修改 poetry 镜像源
  • 四. 轻松打包(poetry build)和发布(poetry publish)
    • 1. 打包(poetry build)
    • 2. 发布(poetry publish)
  • 五. 参考文献

  • 官网:https://python-poetry.org/
  • Poetry GitHub:https://github.com/python-poetry/poetry#poetry-dependency-management-for-python

一. 基础知识

1. Poetry是什么?

  • Poetry 帮助你定义、管理和安装 Python 项目的依赖,还可以用于项目的打包和发布。
  • 简单来说,Poetry 类似pip,能协助你进行套件管理(dependency management),但又比pip 强大得多,因为它还包含了pip 所未有的下列功能:
  • 管理第三方模块的安装与卸载
  • 管理虚拟环境
  • 管理虚拟环境的依赖
  • 管理打包与发布。其中最重要的是 虚拟环境的依赖。

2. 名词解释:虚拟环境管理、模块管理、模块依赖管理

在这里插入图片描述

3. pip的不足

  • pip 是Python 内建的套件管理工具,而它的最大罩门,就是对于「套件间的相依性管理」能力不足。尤其是在「移除」套件时的依赖解析——可以说没有。这也是我提议改用Poetry 的根本原因。
  • 怎么说?看完下面的例子就能明白。
  • pip uninstall的困境:以Flask 为例
  • 假设现在你的工作专案中有开发API 的需求,经过一番研究与讨论,决定使用Flask网页框架来进行开发。
  • 我们知道,很多套件都有依赖的套件,也就是使用「别人已经造好的轮子」来构成套件功能的一部分。
  • 安装主套件时,这些依赖套件也必须一并安装,主套件才能正常运作,这里的Flask 就是如此。安装Flask 时,不会只安装单一个flask套件,还会安装所有Flask 的必要构成部分——也就是依赖套件,结果如下:
❯ pip install flask 
Collecting flask 
  Downloading Flask-2.1.1-py3-none-any.whl (95 kB) 
     |█████████████████████████ ███████| 95 kB 993 kB/s 
... 
Installing collected packages: zipp, MarkupSafe, Werkzeug, Jinja2, itsdangerous, importlib-metadata, click, flask 
Successfully installed Jinja2-3.1.1 MarkupSafe-2.1.1 Werkzeug-2.1.1 click-8.1.2 flask-2.1.1 importlib-metadata-4.11.3 itsdangerous-2.1.2 zipp-3.7.0
  • 从上可知,pip install flask还会一并安装importlib-metadata、itsdangerous等7 个依赖套件,实际上总共安装了8 个套件!

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • pip 替代方案选择——Pipenv vs Poetry

二. 从零开始使用Poetry

1. 安装Poetry

  • 官网文档:https://python-poetry.org/docs/#installation

> - Poetry 和pip、git、pyenv 等工具一样,都是典型的命令列工具,需要先安装才能下达指令—— poetry。

2. 初始化Poetry

在这里插入图片描述

在这里插入图片描述

3. 管理Poetry 虚拟环境

在这里插入图片描述

  • 虚拟环境的命名模式为 项目名-随机数-python版本
  • 更多资讯可参考官方文件:https://python-poetry.org/docs/managing-environments/

在这里插入图片描述

4. 修改config,建立专案内.venv虚拟环境

在这里插入图片描述

5. 启动与退出虚拟环境

在这里插入图片描述

6. Poetry 指令

在这里插入图片描述

6.1. Poetry 新增套件

在这里插入图片描述

6.2. poetry.lock与更新顺序

在这里插入图片描述

6.3. poetry lock:更新poetry.lock

在这里插入图片描述

7. 指定套件「版本」范围

在这里插入图片描述

7.1. Poetry 的版本管理能力

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

8. 新增套件至dev-dependencies

在这里插入图片描述
在这里插入图片描述

  • https://python-poetry.org/docs/cli/#add

在这里插入图片描述

9. Poetry 更新套件

在这里插入图片描述

10. 列出全部套件清单

在这里插入图片描述

11. 「树状」显示套件依赖层级

在这里插入图片描述
在这里插入图片描述

12. Poetry移除套件(remove)

在这里插入图片描述
在这里插入图片描述

13. 输出requirements.txt

poetry export -f requirements.txt -o requirements.txt --without-hashes
  • 网友提醒,hash 有其价值,并建议保留,详见留言区

在这里插入图片描述

14. 输出dev-dependencies

  • poetry export所有参数用法与说明,请参考文件。

在这里插入图片描述

在这里插入图片描述

15. Poetry 常用指令清单

在这里插入图片描述

三. Poetry 常见使用情境与操作QA

在这里插入图片描述

1. 新增专案并使用Poetry

在这里插入图片描述

2. 现有项目改用Poetry

在这里插入图片描述

3. 在别台主机上重现项目的Poetry虚拟环境

在这里插入图片描述

4. 我想要移除并重建虚拟环境

在这里插入图片描述

5. 为什么我不在Docker 环境中使用Poetry?

在这里插入图片描述

6. 我可以使用自己习惯的virtualenv 吗?

在这里插入图片描述

7. 修改 poetry 镜像源

  • 修改为清华镜像源
poetry source add tsinghua https://pypi.tuna.tsinghua.edu.cn/simple

四. 轻松打包(poetry build)和发布(poetry publish)

  • 具体可以参考入门项目:https://github.com/zhangkaifang/vpdbz

1. 打包(poetry build)

  • 文档:https://python-poetry.org/docs/cli/#build

在这里插入图片描述

在这里插入图片描述

2. 发布(poetry publish)

  • 文档:https://python-poetry.org/docs/cli/#build
# -----------------------使用账户密码方式
poetry publish --build --username xxx --password xxx
# -----------------------使用token方式
# poetry config pypi-token.pypi xxxx
poetry config pypi-token.pypi pypi-AgEIcHlwaS5vcmcCJDkxNTQ2NzA5LTY4NzMtNDhmNC04ZDczLWM2NGM2ZTI2MWNlNwACKlszLCI0OWRlYjAyZC0xNzM5LTRmNTctOWUyNi1iOTUyOWQzMzM1YWMiXQAABiCr2ay7NyHuJUnJhRPgLeWsJ7nrWE-9V28KDHiOdBK1jA

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五. 参考文献

  • poetry 入门完全指南
  • Python 套件管理器——Poetry 完全入门指南

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

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

相关文章

1区SCI,录用仅需2个月!国人发文量位居第二,超低版面费,毕业评职的救命神刊!

关注GZH【欧亚科睿学术】,第一时间了解期刊最新动态! 🔥 🔥 🔥 🔥 中科院2区SCI,2个月即录用! 《Journal of King Saud University-Computer and Information Sciences》是一…

给python初学者的一些建议

写在开篇 关于Python,可以这么说,这几年借着数据科学、机器学习与人工智能的东风,Python 老树开新花,在风口浪尖上居高不下。 Python 之所以这么受大家的青睐,是因为它语言简洁,上手容易,让非…

网络安全4

一. 查找网络漏洞的两种方式 1. CMS源码网站 很多网站在搭建的时候会使用网上的源码模板(可能是php,arp等等),当我们找到cms之后就可以在网上搜索对应cms漏洞从而发现漏洞。或者下载对应cms源码到本地对源码白盒测试 如何判断网站cms 比如:…

股指期货交易中的MACD指标应用指南

在期货市场中,技术分析是投资者把握市场动向、做出交易决策的重要工具。技术指标众多,但没有绝对准确的指标,关键在于如何合理运用。本文将详细介绍MACD指标,帮助投资者更好地理解和运用这一工具。 一、什么是MACD指标&#xff1…

【Material-UI】Autocomplete 组件中的虚拟化功能(Virtualization)详解

文章目录 一、虚拟化概述二、实现虚拟化的步骤1. 引入依赖2. 自定义 Popper 组件和 Listbox 组件3. 代码详解4. 性能优化 三、实际应用场景1. 大规模数据列表2. 高性能需求的应用 四、总结 在现代 Web 开发中,处理大量数据时,性能优化显得尤为重要。Mate…

企业级OV通配符/泛域名https证书申请

企业网站如果要申请HTTPS证书,那么OV通配符/泛域名https证书是一个相当合适的选择。企业级 OV 通配符/泛域名证书是一种 SSL/TLS 证书类型,为主域名及其所有二级子域名提供安全连接。 申请 OV 通配符 SSL 证书,您通常需要遵循以下步骤&#x…

机器学习之主成分分析(PCA)

机器学习之主成分分析(PCA) 1. PCA的数学基础1.1 线性代数基础1.1.1 向量与矩阵的表示1.1.2 矩阵的特征值与特征向量 1.2 协方差矩阵1.2.1 定义与性质1.2.2 在PCA中的作用 2. PCA的理论概述2.1 主成分的定义2.1.1 方差最大化的原则2.1.2 正交性与主成分正…

[图解]SysML建模电磁轨道炮-01块定义图

1 00:00:00,490 --> 00:00:04,000 我们是用EA复刻一个网络上的案例 2 00:00:06,370 --> 00:00:09,240 电磁轨道炮,它的原理很简单 3 00:00:09,490 --> 00:00:10,960 初中物理就可以理解 4 00:00:11,670 --> 00:00:14,010 首先,电流形成磁…

How to get headers from OpenAI API

题意:怎样从OpenAI API获取响应头(Headers) 问题背景: I am relatively new to the OpenAI API and am trying to obtain my rate limits through the HTTP headers of the response, as discussed https://platform.openai.com/…

Markdown插入Base64格式的图片,无需图床,稳定保存

Markdown插入Base64格式的图片,无需图床,稳定保存 我是一个Markdown的爱好者,转存图片是MD经常出问题的地方,因为MD不像其他富文本编辑器,将图片内嵌到文件中,而是用链接的形式引用,或网络链接…

【复旦微FM33 MCU 外设开发指南】系统篇——时钟

前言 本系列基于复旦微FM33系列单片机的DataSheet编写,旨在提供一些开发指南。 本文章及本系列其他文章将持续更新,本系列其它文章请跳转↓↓↓ 【复旦微FM33 MCU 外设开发指南】总集篇 本文章最后更新日期:2024/08/04 文章目录 前言时钟源…

视频作为现实世界决策制定的新语言

人工智能咨询培训老师叶梓 转载标明出处 在互联网上,视频和文本数据同样丰富,它们支持通过预测下一个词或帧来进行大规模自监督学习。然而视频数据并没有象文本数据那样被充分利用:语言模型已经在现实世界产生了显著影响,而视频生…

命令行参数、环境变量详解

目录 一、命令行参数: 二、环境变量PATH 1、理解什么是环境变量 2、常见环境变量和操作 3、整体理解环境变量,系统,程序 4、如何获取环境变量(c语言) (1)getenv() 函数 (2)使…

uniapp(scroll-view)设置show-scrollbar无效

一、描述 在uniapp中,使用scroll-view内置组件,我这里是把他弄成一个可以滑动的导航,设置show-scrollbar"false"之后,按道理来说应该可以了,这个官方提供的一个属性可以不显示滑动条。但是,发现&…

影响气动小流量调节阀EMC测试价格因素是什么

气动小流量调节阀是一种顶导向单阀座调节阀,具有结构简单、密封性能好、使用可靠等特点。有效而足够的顶部导向系统克服小开度时的震动,有效使用寿命更长。气动小流量调节阀流量系数KV值从1.0到10-5的称为小流量调节阀,当Kv≤210-2时&#xf…

【中项第三版】系统集成项目管理工程师 | 第 11 章 规划过程组⑨ | 11.23 - 11.25

前言 第11章对应的内容选择题和案例分析都会进行考查,这一章节属于10大管理的内容,学习要以教材为准。本章上午题分值预计在15分。 目录 11.23 规划采购管理 11.23.1 主要输入 11.23.2 主要输出 11.23.3 合同类型 11.23.4 合同内容 11.24 规划干…

如何在亚马逊云科技AWS上利用LoRA高效微调AI大模型减少预测偏差

简介: 小李哥将继续每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿AI技术解决方案,帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS AI最佳实践,并应用到自己的日常工作里。 在机器学习和人工智能领域,生成偏差…

Radiant Photo 1.4.1 AI智能完美照片修图插件支持PS ai beta

前言 Radiant Photo 是一款高效的照片编辑与增强应用。这款软件配备了多样化的编辑工具及特效,使得用户能够便捷地改善、修正并提升图片质量,让照片看起来更为出色且引人注目。无论你是日常使用者还是专业的摄影人士,都能够借助这款应用来增…

DBMS 与 RDBMS

DBMS 与 RDBMS 了解数据库什么是数据库管理系统?Types of DBMS 数据库管理系统的类型T数据库管理系统的好处 关系型数据库管理系统的优点 【纪录片】中国数据库前世今生 在数字化潮流席卷全球的今天,数据库作为IT技术领域的“活化石”,已成为…

常见用于联邦学习的数据集【FL】【Datasets】

文章目录 数据集CIFAR-10/CIFAR-100:CIFAR-10CIFAR-100特点以CIFAR-10 为例:示例内容batches.metadata_batch_1 到 data_batch_5test_batch图片转换Python脚本: MNIST:Fashion-MNIST:EMNIST:Googles Federa…