当前位置: 首页 > news >正文

python poetry的教程

Poetry

在这里插入图片描述

Python世界中,Poetry是一个近年来备受瞩目的工具,它为开发者提供了一个灵活且强大的依赖管理解决方案。Poetry可以帮助开发者管理项目的依赖关系,同时提供了一系列的工具和功能,使开发者能够更轻松地创建和管理复杂的项目。在这篇文章中,我们将深入了解Poetry的基本概念、特点和优势。

  • Poetry的基本概念

Poetry是一个Python的依赖管理工具,它旨在提供一种更简单、更直观的方式来管理Python项目的依赖关系。与传统的pip工具相比,Poetry具有更多的功能和优势,如自动解决依赖冲突、创建虚拟环境、管理项目配置等。

  • Poetry的特点和优势

以下是Poetry的一些主要特点和优势:

  1. 灵活的依赖管理:Poetry使用明了的语法来定义项目的依赖关系,开发者可以轻松地指定项目所需的库及其版本。此外,Poetry还可以自动解决依赖冲突,确保项目在不同环境下都能够正常运行。
  2. 虚拟环境管理:Poetry提供了虚拟环境的支持,使得不同项目之间的依赖关系不会相互干扰。开发者可以根据项目需求创建独立的虚拟环境,并在其中安装项目所需的库。
  3. 自动构建和发布:Poetry集成了构建和发布工具,可以帮助开发者自动化构建和发布Python项目。通过定义构建规范,开发者可以轻松地将项目打包为可分发的格式。
  4. 配置管理:Poetry提供了配置管理的功能,开发者可以在项目中使用配置文件来定义不同环境下的参数和设置。这使得项目在不同环境下能够自动适应相应的配置。
  5. 广泛的社区支持:Poetry得到了广泛的社区支持,许多知名的Python库都提供了Poetry支持。这意味着开发者在使用Poetry管理项目时,可以轻松地找到所需的依赖库。
  6. 与其他工具集成:Poetry可以与许多其他工具集成,如Git、CI/CD工具等。通过集成,开发者可以轻松地将依赖管理流程与项目的其他部分集成在一起。

安装

  • install : curl -sSL https://install.python-poetry.org | python3 -

  • add env : export PATH="/Users/chendongsheng/.local/bin:$PATH"

  • 给on-myzsh添加自动完成

mkdir $ZSH_CUSTOM/plugins/poetry
poetry completions zsh > $ZSH_CUSTOM/plugins/poetry/_poetryplugins(poetry...)

基础使用技巧

  • 新建一个项目: poetry new poetry-demo

    • pyproject.toml: 文件是最重要的
  • 初始化已经存在的项目:

    cd pre-existing-project
    poetry init
    
# 使用poetry配置文件的python 环境,默认放在.venv的文件夹中
poetry env use python
# 进入当前虚拟环境
poetry shell# 退出虚拟环境
exit# 添加新的依赖项目
poetry add flask# 现实当前的项目list
poetry show
poetry show --tree # 移除依赖
poetry remve xxx# 使用poetry的python环境进行执行
poetry run python your_script.py# 安装已经有的poetry环境
poetry install

分组管理


# 将black新增到dev分支
poetry add black --group dev
poetry add pytest --group test# 安装所有组的依赖
poetry install# 安装 main 组的依赖 (三种写法)
poetry install --with main
poetry install --only main
poetry install --only-root# 选择安装哪些组 (--without优先级高于with)
poetry install --with test,docs --without docs# 将分组内的依赖都删除
poetry remove mkdocs --group docs# 同步poetry的依赖
poetry install --sync# 选择性同步poetry的某一个组
poetry install --without dev --sync
poetry install --with docs --sync
poetry install --only dev

配置

  • 配置路径

    • Linux: $XDG_CONFIG_HOME/pypoetry or ~/.config/pypoetry

    • Windows: %APPDATA%\pypoetry

    • MacOS: ~/Library/Application Support/pypoetry

  • 数据文件夹

    • Linux: $XDG_DATA_HOME/pypoetry or ~/.local/share/pypoetry
    • Windows: %APPDATA%\pypoetry
    • MacOS: ~/Library/Application Support/pypoetry
  • 缓存文件夹

    • Linux: $XDG_CACHE_HOME/pypoetry or ~/.cache/pypoetry
    • Windows: %LOCALAPPDATA%\pypoetry
    • MacOS: ~/Library/Caches/pypoetry
# 查看相关的配置
poetry config --list# 将xxx.xxx改为true
poetry config xxx.xxx true
poetry config virtualenvs.path /path/to/cache/directory/virtualenvs
poetry config virtualenvs.path --unset

安装源

  1. default source, 默认来源,
  2. primary sources, 主要资源,
  3. implicit PyPI (unless disabled by another default source or configured explicitly),
    隐式 PyPI(除非被另一个默认源禁用或显式配置),
  4. secondary sources (DEPRECATED),
    二手来源(已弃用),
  5. supplemental sources. 补充来源。
poetry source add --priority=supplemental foo https://pypi.example.org/simple/# 新加源foo
poetry source add foo https://foo.bar/simple/
# 将foo源设置为默认源
poetry source add --priority=default foo https://foo.bar/simple/

管理环境

# 设置使用哪个虚拟环境的python
poetry env use /full/path/to/python
poetry env use python3.7# 显示环境
poetry env info# 获取环境路径
poetry env info --path
# 获取python可执行路径
poetry env info --executable# 获取当前环境的所有依赖
poetry env list# 删除环境
poetry env remove /full/path/to/python
poetry env remove python3.7
poetry env remove 3.7
poetry env remove test-O3eWbxRl-py3.7

依赖规范

poetry add django@^4.0.0
poetry add django@latest

导出requuirement

需要安装插件: Export Poetry Plugin

  • install cmd

poetry self add poetry-plugin-export

poetry export -f requirements.txt --without-hashes --output requirements.txt

插件安装

# 插件安装
poetry self add poetry-plugin
# 插件卸载
poetry self remove poetry-plugin

参考文档

poetry所有制指令参考

在这里插入图片描述

相关文章:

python poetry的教程

Poetry Python世界中,Poetry是一个近年来备受瞩目的工具,它为开发者提供了一个灵活且强大的依赖管理解决方案。Poetry可以帮助开发者管理项目的依赖关系,同时提供了一系列的工具和功能,使开发者能够更轻松地创建和管理复杂的项目。…...

jq里的ajax超详细参数讲解

目录 1、url:要发送请求的URL地址。 2、type:请求的类型,可选参数,包括GET、POST、PUT、DELETE等,默认为GET。 3、data:要发送到服务器的数据,可以是一个字符串、数组或对象。默认为null。 4…...

郑州大学2020级信息安全专业——保研小结

最终上岸 夏令营: 夏令营开始的时间一般比较早,在期末考试之前就已经开始了,需要提前联系导师,有的学校是弱com,导师愿意要你入营的概率和优营的概率就会比较大,因此要提前联系导师,复习好项目…...

【系统架构设计】架构核心知识: 3.6 负载均衡和Session

目录 一 负载均衡 1 应用层负载均衡 2 传输层负载均衡 二 Session 1 Session共享机制...

python pip安装特定包,网络慢的问题

文件requirements.txt httpx0.24.0 Pillow9.5.0 playwright1.33.0 tenacity8.2.2 tornado6.3.2 PyExecJS1.5.1 opencv-python4.7.0.72 tortoise-orm[asyncmy]0.19.3 aerich0.7.2 numpy~1.24.4 redis~4.6.0 Pydantic1.7将文件放入任意一个目录下 cd 到该目录下执行 while read…...

CMT2300A超低功耗127-1020MHz Sub-1GHz全频段SUB-1G 射频收发芯片

CMT2300A超低功耗127-1020MHz Sub-1GHz全频段SUB-1G 射频收发芯片 Sub-1GHz,是指小于1GHz频率的统称。Sub-1GHz无线电频段应用的主要特点:(1)频率较低波长较长,传输距离远,穿透性强;&#xff0…...

设计模式之工厂模式 ( Factory Pattern )(1)

其他设计模式也会后续更新… 设计模式其实需要有一定开发经验才好理解,对代码有一定的设计要求,工作中融入才是最好的 工厂模式 ( Factory Pattern ) 工厂模式(Factory Pattern)提供了一种创建对象的最佳方式 工厂模式在创建对…...

OpenCV入门11:轮廓提取和形状识别

轮廓分析主要用于轮廓提取和形状识别等任务。在OpenCV中,轮廓提取和形状识别是图像处理和计算机视觉中常见的任务。下面是关于这两个知识点的一些基本内容: 轮廓提取: 轮廓提取是指从图像中提取出物体轮廓的过程。在OpenCV中,可…...

竞赛选题 深度学习疲劳检测 驾驶行为检测 - python opencv cnn

文章目录 0 前言1 课题背景2 相关技术2.1 Dlib人脸识别库2.2 疲劳检测算法2.3 YOLOV5算法 3 效果展示3.1 眨眼3.2 打哈欠3.3 使用手机检测3.4 抽烟检测3.5 喝水检测 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习加…...

Java编程--定时器/线程池/工厂模式/ ThreadPoolExecutor

前言 逆水行舟,不进则退!!! 目录 什么是定时器 实现一个定时器 自己实现一个定时器 什么是线程池 线程池的使用: 什么是工厂模式? 自己实现一个线程池: ThreadPoolExecutor 类…...

【python】Django——django简介、django安装、创建项目、快速上手

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ Django基础——django安装、创建django项目、django快速上手 django简介django安装1. conda创建环境pydjango2. pip安装django3. django目录 创建项目1. 打开终端(cmd)2. 进入某个目录3.创建项目命令4.django项目…...

未来之选:为什么向量数据库是您的数据管理利器

文章目录 前言什么是向量数据库?向量数据库的机制向量数据库的优点‍查询向量数据库 什么是向量Embedding?Amazon OpenSearch Service总结 前言 向量数据库擅长处理复杂的高维数据,正在彻底改变商业世界的数据检索和分析。它们执行相似性搜索…...

隧道施工工艺流程vr线上虚拟展示成为产品3D说明书

行业内都知道,汽车生产的大部分都需要冲压加工来完成,因此汽车冲压工艺是汽车制造过程中的重要环节,传统的展示方式往往局限于二维图纸和实地操作,难以充分展现工艺的细节和流程。然而,随着技术的进步,汽车…...

Nacos(含安装)

Nacos是一个开源的动态服务发现、配置和管理平台。它提供了服务发现、服务健康检查、动态配置管理、服务元数据管理等功能,支持多种服务发现和注册方式。Nacos可以帮助开发者快速构建一个具有弹性和高可用性的微服务应用程序。Nacos的全称是Named after Configurati…...

本地跑项目解决跨域问题

跨域问题: 指的是浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对 javascript 施加的安全限制。 同源策略: 是指协议(protocol)、域名(host)、端口号&…...

聊聊logback的isDebugEnabled

序 本文主要研究一下logback的isDebugEnabled isDebugEnabled public final class Loggerimplements org.slf4j.Logger, LocationAwareLogger, LoggingEventAware, AppenderAttachable<ILoggingEvent>, Serializable {//......public boolean isDebugEnabled() {retur…...

ChatGPT+Roblox,元宇宙的AI叙事逻辑#Leveling Up

MixCopilot 嗨&#xff0c;亲爱的听众朋友们&#xff01;欢迎收听我们的播客节目&#xff01;我是你们的主播&#xff1a;MixCopilot 混合副驾。今天我们要为大家带来的是我们的AI革命系列节目之一。这个系列节目聚焦于AI领域的一些最有影响力的建设者&#xff0c;他们将会讨论…...

Spark算子

一、编写spark程序的准备工作&#xff08;程序入口 SparkContext&#xff09; 1.创建SparkConf val conf new SparkConf().setMaster("local[2]").setAppName("hello-app") 2.创建sparkContext val sc: SparkContext new SparkContext(conf) 二、基…...

Containerd接入Harbor仓库

在使用容器时&#xff0c;避免不了会使用到私有仓库&#xff0c;一般都是采用 harbor 作为私有仓库&#xff0c;docker 对接 harbor 仓库非常简单&#xff0c;哪 containerd 如何对接 harbor 呢&#xff1f; 在内网使用 harbor 根据个人习惯&#xff0c;一般都是非 http 并且是…...

Angular 组件介绍及使用(一)

Angular 概述 Angular 是一个用于构建 Web 应用程序的开源前端框架&#xff0c;由 Google 团队开发和维护。它采用 TypeScript 编程语言&#xff0c;并借鉴了一些传统的 Web 开发模式和最佳实践&#xff0c;提供了强大而灵活的工具和特性。 以下是 Angular 的一些概述要点&am…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...