Poetry入门教程

以前使用模块管理和虚拟环境为pip和Virtualenv组合,随着Rasa、Dify等开源项目逐步使用Poetry模块管理,也开始尝试使用Poetry。本文简要介绍Poetry入门操作。

1.Poetry安装

可参考Poetry官网[1]推荐的安装方式:

通过Windows的Powershell如下:

(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -

配置Poetry环境变量:

查看Poetry版本和路径:

通过poetry new创建一个新的Poetry项目:

2.管理虚拟环境

poetry 默认会将虚拟环境统一放在指定目录,即 C:\Users\xxx\AppData\Local\pypoetry\Cache\virtualenvs\。虚拟环境的命名规则为项目名-随机数-python版本。如何将虚拟环境放在当前项目目录中呢?通过命令poetry config --list如下:

PS F:\Python资料\PythonProject\PythonExample> poetry config --list
cache-dir = "C:\\Users\\wangs\\AppData\\Local\\pypoetry\\Cache"
experimental.system-git-client = false
installer.max-workers = null
installer.modern-installation = true
installer.no-binary = null
installer.parallel = true
keyring.enabled = true
solver.lazy-wheel = true
virtualenvs.create = true
virtualenvs.in-project = null
virtualenvs.options.always-copy = false
virtualenvs.options.no-pip = false
virtualenvs.options.no-setuptools = false
virtualenvs.options.system-site-packages = false
virtualenvs.path = "{cache-dir}\\virtualenvs"  # C:\Users\wangs\AppData\Local\pypoetry\Cache\virtualenvs
virtualenvs.prefer-active-python = false
virtualenvs.prompt = "{project_name}-py{python_version}"
warnings.export = true

将virtualenvs.in-project设置为true即可:

poetry config virtualenvs.in-project true

通过命令poetry add flask试一试:

可以看到当执行 poetry add 指令时,poetry 会自动检查当下是否正在使用虚拟环境,如果没有,那么会自动创建一个新的虚拟环境,然后再安装模块。

进入虚拟环境变量的命令为poetry shell,退出虚拟环境变量的命令为exit

3.Poetry常用命令 [2]

Poetry常用命令、功能和示例:

命令功能示例
poetry add添加依赖到项目poetry add requests
poetry remove从项目中移除依赖poetry remove requests
poetry export导出依赖到其它格式文件poetry export -f requirements.txt
poetry env use指定项目使用的Python解释器poetry env use python3.8
poetry shell启动项目的虚拟环境poetry shell
poetry show显示项目依赖的详细信息poetry show requests
poetry init初始化一个新项目并生成pyproject.tomlpoetry init
poetry install安装项目依赖poetry install
poetry new创建一个新的Poetry项目poetry new my_project
poetry build打包项目,通常在 dist 目录poetry build
poetry publish发布项目到PyPIpoetry publish --username <your-username> --password <your-password>

可修改Poetry为清华镜像源:

poetry source add tsinghua https://pypi.tuna.tsinghua.edu.cn/simple

4.pyproject.toml和poetry.lock关系

当使用 poetry add 指令时,poetry 会自动更新 [4]:

  • 更新 pyproject.toml

  • 依照 pyproject.toml 内容,更新 poetry.lock

  • 依照 poetry.lock 内容,更新虚拟环境

poetry.lock 实际上相当于 piprequirements.txt 文件,详细记录了所有安装的模块与版本。

(1)pyproject.toml文件

这段代码是一个pyproject.toml文件的内容,用于配置和管理一个Python项目。

[tool.poetry]
name = "poetry-demo"
version = "0.1.0"
description = ""
authors = ["wangss <913292836@qq.com>"]
readme = "README.md"[tool.poetry.dependencies]
python = "^3.10"[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

[tool.poetry] 部分包含了与Poetry项目相关的基本信息:

  • name: 项目的名称,这里是 "poetry-demo"

  • version: 项目的版本号,这里是 "0.1.0"

  • description: 项目的描述,这里为空字符串。

  • authors: 项目的作者列表,这里是 ["wangss <913292836@qq.com>"]

  • readme: 项目的README文件,这里是 "README.md"

[tool.poetry.dependencies] 部分定义了项目的依赖:

  • python: 项目所需的Python版本,这里是 "^3.10",表示需要Python 3.10版本及其以上的版本。

[build-system] 部分指定了构建系统的信息:

  • requires: 构建系统所需的包列表,这里是 ["poetry-core"]

  • build-backend: 构建后端,这里是 "poetry.core.masonry.api",表示使用Poetry的核心构建API。

(2)poetry.lock文件

这段代码是一个由Poetry生成的poetry.lock文件的一部分,用于锁定项目的依赖关系版本,确保项目在不同环境中具有一致的依赖。

# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
package = [][metadata]
lock-version = "2.0"
python-versions = "^3.10"
content-hash = "53f2eabc9c26446fbcc00d348c47878e118afc2054778c3c803a0a8028af27d9"

package 部分:通常会列出所有被锁定的依赖包及其版本信息。在这里它是一个空列表,表示当前项目没有额外的依赖或依赖尚未锁定。

package = []

[metadata] 部分:包含了关于锁文件和项目的一些元数据信息:

  • lock-version: 锁文件的版本,这里是 "2.0"。这表明文件遵循Poetry锁文件的2.0版本规范。

  • python-versions: 项目所支持的Python版本范围,这里是 "^3.10",表示需要Python 3.10版本及其以上的版本。

  • content-hash: 内容哈希值。该哈希值用于验证依赖关系的完整性,确保依赖关系未被篡改。

5.poetry安装whl文件

pip是可以直接安装whl文件的,如何通过poetry安装whl文件呢?Poetry 主要用于管理项目依赖和构建,而不像 pip 那样直接安装 .whl 文件。不过,Poetry 可间接地通过 pyproject.toml 文件指定依赖来安装 .whl 文件。如果已经有一个 .whl 文件,并且希望使用 Poetry 安装它,可以通过以下步骤来实现:

(1) 创建或更新 pyproject.toml

在项目的 pyproject.toml 文件中添加对本地 .whl 文件的依赖。假设 .whl 文件路径是 ./dist/poetry_demo-0.1.0-py3-none-any.whlpyproject.toml 文件可像这样配置:

[tool.poetry]
name = "example-project"
version = "0.1.0"
description = ""
authors = ["Your Name <you@example.com>"][tool.poetry.dependencies]
python = "^3.10"
poetry-demo = { path = "./dist/poetry_demo-0.1.0-py3-none-any.whl" }[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

(2)使用 Poetry 安装依赖

在项目目录下运行以下命令来安装依赖,包括本地的 .whl 文件。这样Poetry 会根据 pyproject.toml 文件中的配置来安装依赖,包括本地的 .whl 文件。

poetry install

参考文献

[1] Poetry官方文档:https://python-poetry.org/docs/

[2] Poetry的帮助文档:https://github.com/GeekFong/how_to_use_poetry/blob/main/How_To_Use_Poetry/Poetry的帮助文档

[3] https://github.com/python-poetry/poetry

[4] poetry 入门完全指南:https://notes.zhengxinonly.com/environment/use-poetry.html

[5] https://pypi.org/

NLP工程化(星球号)

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

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

相关文章

C++编程: 使用 Nanomsg 进行 PUB-SUB 模式基准测试

文章目录 0. 引言1. Nanomsg简介1.1 可扩展性协议类型1.2 支持的传输机制1.3 NanoMsg 架构与实现 2. PUB-SUB 模式基准测试 0. 引言 Nanomsg 作为一款高性能的通信库&#xff0c;支持多种消息传递模式&#xff0c;其中包括 PUB-SUB&#xff08;发布-订阅&#xff09;。 本篇文…

yolov8环境安装

一、Miniconda Conda 是一个开源的包管理和环境管理系统&#xff0c;它能运行、安装和更新各种包和依赖&#xff0c;同时还能创建隔离的环境。 1.1 下载安装 Miniconda https://repo.anaconda.com/miniconda/Miniconda3-py39_24.5.0-0-Windows-x86_64.exe1.2 打开 Anaconda …

向量数据库(一)

写在前面 最近在学习一些 AI 相关的开发&#xff0c;了解了一些未接触过的东西&#xff0c;其中有一部分是向量数据库&#xff0c;想开一个专题&#xff0c;对相关的内容做一下整理。 内容 什么是向量数据库 一般在我们的日常开发中&#xff0c;使用的数据库存储主要有两种…

Matlab进阶绘图第65期—带分组折线段的柱状图

带分组折线段的柱状图是在原始柱状图的基础上&#xff0c;在每组柱状图位置处分别添加折线段&#xff0c;以进行对比或添加额外信息。 由于Matlab中未收录带分组折线段的柱状图的绘制函数&#xff0c;因此需要大家自行设法解决。 本文使用自制的BarwithGroupedLine小工具进行…

大模型算法面试题(十四)

本系列收纳各种大模型面试题及答案。 1、微调后的模型出现能力劣化&#xff0c;灾难性遗忘是怎么回事 微调后的模型出现能力劣化&#xff0c;灾难性遗忘&#xff08;Catastrophic Forgetting&#xff09;是一个在机器学习领域&#xff0c;尤其是在深度学习和大模型应用中频繁出…

数据库(MySQL)-DQL数据查询语言

DQL(Data Query Language 数据查询语言)的用途是查询数据库数据&#xff0c;如select语句。其中&#xff0c;可以根据表的结构和关系分为单表查询和多表联查。 单表查询 单表查询&#xff1a;针对数据库中的一张数据表进行查询 全字段查询 语法&#xff1a;select 字段名 fro…

报警系统与机房动力环境监控系统的集成及报警功能实施

在当今的运维行业中&#xff0c;确保关键基础设施的安全与稳定运行面临着诸多挑战&#xff0c;如设备故障、环境异常、非法入侵等。为了有效应对这些挑战&#xff0c;报警系统与机房动力环境监控系统的集成变得至关重要。本文旨在为运维团队提供关于报警系统与机房动力环境监控…

使用frrouting、gns3、pim实现ipv6组播(三)

翻遍整个网络都没有找到用ipv6进行组播推流的实例。 朋友说&#xff1a;A true strong person never complains about the environment 那么&#xff0c;就由我来创造一个吧~ 此文涉及到的所有软件均为开源软件&#xff0c;进行深入学习与其他平台移植时十分便利。 记得点赞额…

如何在GPU服务器上安装Stable Diffusion webUI

一、前提条件 1、硬件条件 GPU&#xff1a;12G&#xff0c;建议16G以上&#xff0c;还是尽量勾搭&#xff0c;好像现在最大32G&#xff0c;目前个人性价比24G有时长出售。 内存&#xff1a;16G以上&#xff0c;建议32G&#xff0c;也是越大越好。 硬盘&#xff1a;最好使用…

2024年【金属非金属矿山(地下矿山)安全管理人员】考试报名及金属非金属矿山(地下矿山)安全管理人员模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年金属非金属矿山&#xff08;地下矿山&#xff09;安全管理人员考试报名为正在备考金属非金属矿山&#xff08;地下矿山&#xff09;安全管理人员操作证的学员准备的理论考试专题&#xff0c;每个月更新的金属非…

抖音矩阵管理系统功能说明:一站式掌握

在当下这个信息爆炸的时代&#xff0c;抖音作为短视频领域的佼佼者&#xff0c;其用户规模持续扩大&#xff0c;影响力日益增强。对于内容创作者和营销人员来说&#xff0c;如何高效管理抖音账号&#xff0c;实现内容的多平台分发和精准触达&#xff0c;成为了亟待解决的问题。…

Redis常用指令(不定期更新)

Redis常用指令&#xff08;不定期更新&#xff09; 查询指定前缀key的数量查看键空间事件开启键空间通知 查询指定前缀key的数量 查询【TEST前缀】的key数量 EVAL "return #redis.call(keys,TEST:*)" 0返回信息 查看键空间事件 config get notify-keyspace-even…

Navicat Charts Creator for Mac:数据可视化利器

Navicat Charts Creator for Mac是一款专为Mac用户设计的数据可视化工具&#xff0c;它将复杂的数据转化为直观、易懂的图表&#xff0c;帮助用户更好地理解和分析数据。 该软件支持连接到多种数据库&#xff0c;如MySQL、MariaDB、PostgreSQL等&#xff0c;轻松获取实时数据&…

【QGroundControl二次开发】七.QGC自定义MAVLink消息MavLink通信协议 C++应用

1. 接收解析源码分析 通过接收串口或UDP发来的的字节流buffer&#xff0c;长度lengthbuffer.size()&#xff0c;通过下列脚本解析&#xff0c;每解析出一个mavlink数据包就执行onMavLinkMessage函数 for(int i 0 ; i < length ; i){msgReceived mavlink_parse_char(MAVL…

VS2022下安装和配置OpenCV环境参数+QT开发环境搭建

1.工具准备 VS2022,OpenCV4.5.5版本&#xff0c;QT5.12.12 VisualStudio最新版直接官网下载&#xff0c;根据需要进行下载&#xff0c;我下载的免费社区版本。日常开发完全够用。 qt官网下载5.12版本。 OpenCVReleases - OpenCV 选择Windows版本下载并解压到本地磁盘&#xff0…

在Spring项目中使用Maven和BCrypt来实现修改密码功能

简介 在数字时代&#xff0c;信息安全的重要性不言而喻&#xff0c;尤其当涉及到个人隐私和账户安全时。每天&#xff0c;无数的用户登录各种在线服务&#xff0c;从社交媒体到银行账户&#xff0c;再到电子邮件和云存储服务。这些服务的背后&#xff0c;是复杂的系统架构&am…

【BUG】已解决:No Python at ‘C:Users…Python Python39python. exe’

No Python at ‘C:Users…Python Python39python. exe’ 目录 No Python at ‘C:Users…Python Python39python. exe’ 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班…

【linux服务器】大语言模型实战教程:LLMS大模型快速部署到个人服务器

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引言 说到大语言模型相信大家都不会陌生&#xff0c;大型语言模型(LLMs)是人工智能文本处理的主要类型,也现在最流行的人工智能…

【数据结构】线性表与顺序表

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…

【算法】分布式共识Paxos

一、引言 在分布式系统中&#xff0c;一致性是至关重要的一个问题。Paxos算法是由莱斯利兰伯特&#xff08;Leslie Lamport&#xff09;在1990年提出的一种解决分布式系统中一致性问题的算法。 二、算法原理 Paxos算法的目标是让一个分布式系统中的多个节点就某个值达成一致。算…