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所有制指令参考

在这里插入图片描述

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

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

相关文章

零基础产品经理如何迅速学习Axure原型制作?快速上手攻略!

如果Adobe xd是一个简单易用的UI设计软件,那么Axure应该是一个强大的原型软件。Axure不仅可以制作静态界面原型,还可以在此基础上增加交互效果。虽然Axure的功能比较复杂,但在学习和掌握之后,可以完美实现产品经理心目中的原型体验…

多个电商平台搜索接口是否能聚合使用?

作为一名技术爱好者,我们总会遇到各种各样的技术问题,需要寻找合适的技术解决方案。而在互联网时代,我们可以快速通过搜索引擎获取丰富的技术资源和解决方案。然而,在不同的技术分享中,我们常常会遇到质量参差不齐的文…

【2021研电赛】基于深度学习的蛋白质与化合物结合性质预测

本作品介绍参与极术社区的有奖征集|分享研电赛作品扩大影响力,更有重磅电子产品免费领取! 获奖情况:三等奖 1.作品简介 针对药物发现过程中的药物筛选问题,本设计基于深度学习提出新的神经网络结构和数据处理方式用于预测蛋白质与化合物之…

将请求映射到servlet的规则

参考资源 详情可以参考:https://jakarta.ee/specifications/servlet/6.0/jakarta-servlet-spec-6.0.html#mapping-requests-to-servlets URL路径的使用 web容器接收到客户端的请求,决定转发给哪个web应用。被选中的web 应用必须具有最长的上下文&…

Node.js中的child_process模块的作用

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

搭载紫光展锐V510平台 移远通信RG500U-EA 5G模组获全球首个GCF认证

近日,搭载紫光展锐V510平台的移远通信工规级5G模组RG500U-EA顺利通过GCF认证,成为全球首款通过该认证的基于紫光展锐平台的5G模组。 GCF认证是一种国际性的产品一致性认证,该认证的通过,表明搭载紫光展锐V510的终端产品可满足不同…

计网----数据库(一)

计网----数据库(一) 一.什么是数据库 数据库是”按照数据结构来组织、存储和管理数据的仓库“。是一个长期储存在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 二.数据库的特点 1.规范化的本地存储 2.加密 3.共享 三.数据库的好处…

时间序列预测:深度学习、机器学习、融合模型、创新模型实战案例(附代码+数据集+原理介绍)

本文介绍->给大家推荐一下我的时间序列预测实战专栏,本专栏平均质量分98分,而且本专栏目前免费阅读。其中涉及机器学习、深度学习、融合模型、个人创新模型、数据分析等一系列有关时间序列的内容,其中的实战案例不仅有简单的模型类似于机器…

【面经】如何查看服务器内存和磁盘空间占用

查看服务器内存占用 free -g查看服务器磁盘空间占用 df -h

精进·第1篇:分享一个3年战略规划框架思路

首发:麦子禾咨询 作者:石头 正如解决问题的思路不止一个,做战略规划的思路、框架、模型,石头认为,肯定也不止华为类的业务领先模型BLM、业务战略执行力模型BEM、从战略规划到战略执行DSTE流程,以及轻量级…

Halcon WPF 开发学习笔记(0):开篇介绍

文章目录 文章专栏Halcon是什么?安装教学视频链接简单来说 Halcon快速开发环境确认新建项目 文章专栏 Halcon开发 Halcon是什么? 史上最全VisionPro和Halcon 的详细对比 Halcon简述 Halcon基础大全(基础算子、高阶算子、数组、分割、字符检测…

【算法与数据结构】17、LeetCode电话号码的字母组合

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:本题需要解决的问题有三个: 一、如何实现数字到字母的映射二、如何实现组合问题三、如何解…

Python进阶该怎么学?有什么书推荐吗?

给大家再分享一下整理出来的Python进阶以及Python实践操作可以参考学习的堪称经典的书籍,同样是豆瓣高分榜!内容有点长,一定要耐心看完。 Python进阶学习书籍 Effective Python:编写高质量Python代码的90个有效方法(…

Read-Easy Excel源码解析(一)

Read&Write-Easy Excel 当我们需要导入大Excel时候,用POI会内存溢出,这时候我们用EasyExcel来解决,它底层采用的是SAX(Simple Api for Xml)事件驱动,解析xml的方式来解析excel文件。 首先我们看他的re…

畜牧业RFID电子耳标读卡器品牌选哪个好?怎么选?

在畜牧业中,RFID电子耳标读卡器是一个非常重要的设备,它可以帮助养殖户追踪和管理动物,进行牲畜的身份识别、盘点计数、自动饲喂、防疫分栏管理、出入栏管理、智能称重等操作,提高生产效率和减少损失。 近年来,随着国…

antd Form 校验自定义复杂判断-validator

antd Form 校验 加入自定义复杂逻辑 <Form.Itemlabel"编码"name"code"rules{[{required: true,validator: (_rule, value) > {if (value ) {return Promise.reject(请输入编码);}return IsExist(value).then((res) > {if (res?.statusCode 20…

广域网加速的作用:企业为什么需要广域网加速?

由于局域网与广域网之间巨大的带宽鸿沟&#xff0c;通过增加带宽来满足膨胀的流量需求是不切实际的。 并且广域网带宽成本较高&#xff0c;增加广域网带宽对任何企业都意味着巨大的成本负担。这些使得控制 管理广域网带宽使用成为必需。 企业为什么要加速广域网? 对重要的企…

在Windows 10上安装单机版的hadoop-3.3.5

1、Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以不需要了解分布式底层细节的情况下&#xff0c;开发分布式程序。充分利用集群进行高速运算和存储。 2、下载Hadoop&#xff0c;我们在清华大学的镜像站下载 Index of /apache/hadoop/core/hadoop-3.3.6 (t…

【字符串】【双指针翻转字符串+快慢指针】Leetcode 151 反转字符串中单词【好】

【字符串】【双指针翻转字符串快慢指针】Leetcode 151 反转字符串中单词 解法1 双指针翻转字符串快慢指针更新数组大小 ---------------&#x1f388;&#x1f388;题目链接&#x1f388;&#x1f388;------------------- ---------------&#x1f388;&#x1f388;解答链接…