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/_poetry

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

简单的小调度器

收集小资源下的简单调度器 https://github.com/sigma318/TOS/tree/master https://github.com/smset028/xxddq

Go cobra简介

当你需要为你的 Go 项目创建一个强大的命令行工具时,你可能会遇到许多挑战,比如如何定义命令、标志和参数,如何生成详细的帮助文档,如何支持子命令等等。为了解决这些问题,github.com/spf13/cobra 就可以派上用场。 g…

说说对高阶组件的理解?应用场景?

一、是什么 高阶函数(Higher-order function),至少满足下列一个条件的函数 接受一个或多个函数作为输入输出一个函数 在React中,高阶组件即接受一个或多个组件作为参数并且返回一个组件,本质也就是一个函数&#xf…

Linux环境配置(云服务器)

目录 1.第一步:购买云服务器 2.第二步:下载Xshell 7 3.第三步:打开Xshell,登录云服务器 4.第四步:更加便捷的云服务器登录方式 1.第一步:购买云服务器 (推荐:阿里云、华为云、腾…

k8s----27、云原生存储StorageClass、CSI、Rook

1、动态存储介绍 StorageClass:存储类,由K8s管理员创建,用于动态PV的管理,可以链接至不同的后端存储, 比如Ceph、GlusterFS等。之后对存储的请求可以指向StorageClass,然后StorageClass会自动 的创建、删除PV。 实现方…

数据结构(c语言版) 栈

顺序栈 要求&#xff1a;实现顺序栈的入栈&#xff0c;出栈&#xff0c;显示栈 代码 #include <stdio.h> #define MAXSIZE 100struct liststack{int data[MAXSIZE];int top; };//初始化栈 void init(struct liststack * LS){LS->top -1; }//入栈操作 void instack…

Git详解及常用命令

前言 Git 是一个分布式版本控制系统&#xff0c;用于跟踪和管理项目的代码变化。它由Linus Torvalds在2005年创建&#xff0c;现在是开源社区中最流行的版本控制工具之一。 国内码云地址&#xff1a;工作台 - Gitee.com 版本控制系统 (VCS)&#xff1a;Git 用于跟踪文件和目录…

yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)

多目标追踪实例分割目标检测 YOLO (You Only Look Once) 是一个流行的目标检测算法&#xff0c;它能够在图像中准确地定位和识别多个物体。 本项目是基于 YOLO 算法的目标跟踪系统&#xff0c;它将 YOLO 的目标检测功能与目标跟踪技术相结合&#xff0c;实现了实时的多目标跟…

MUYUCMS v2.1:一款开源、轻量级的内容管理系统基于Thinkphp开发

MuYuCMS&#xff1a;一款基于Thinkphp开发的轻量级开源内容管理系统&#xff0c;为企业、个人站长提供快速建站解决方案。它具有以下的环境要求&#xff1a; 支持系统&#xff1a;Windows/Linux/Mac WEB服务器&#xff1a;Apache/Nginx/ISS PHP版本&#xff1a;php > 5.6 (…

【c++】——类和对象(中)——赋值运算符重载

作者:chlorine 专栏:c专栏 你站在原地不动,就永远都是观众。 【学习目标】 拷贝复制——赋值运算符重载 目录 &#x1f393;运算符重载的初步认识 &#x1f308;运算符重载 &#x1f308;赋值运算符重载格式 (上) &#x1f308;operator__判断俩个日期是否相等 &#x…

【Shell脚本8】Shell printf 命令

Shell printf 命令 printf 命令模仿 C 程序库&#xff08;library&#xff09;里的 printf() 程序。 printf 由 POSIX 标准所定义&#xff0c;因此使用 printf 的脚本比使用 echo 移植性好。 printf 使用引用文本或空格分隔的参数&#xff0c;外面可以在 printf 中使用格式化…

SQL note1:Basic Queries + Joins Subqueries

目录 一、Basic Queries 1、数据库术语 2、查表 3、过滤掉我们不感兴趣的行 4、布尔运算 5、过滤空值&#xff08;NULL&#xff09; 6、分组和聚合 1&#xff09;汇总数据的列 2&#xff09;汇总数据组 7、分组聚合的警告 1&#xff09;SELECT age, AVG(num_dogs) FR…

代挂单页网址发布页+加盟代理+APP下载页源码

代挂单页加盟代理网址发布页app下载页HTML单页版本&#xff0c;自行修改源码内文字。自行修改联系方式、登录地址&#xff01;上传即可使用。源码我已全部打包好&#xff0c;直接上传本站提供的源码&#xff0c;无后台&#xff0c;直接访问即可&#xff01; 源码下载&#xff…

STM32外设系列—MPU6050角度传感器

&#x1f380; 文章作者&#xff1a;二土电子 &#x1f338; 关注公众号获取更多资料&#xff01; &#x1f438; 期待大家一起学习交流&#xff01; 文章目录 一、MPU6050简介二、MPU6050寄存器简介2.1 PWR_MGMT_1寄存器2.2 GYRO_CONFIG寄存器2.3 ACCEL_CONFIG寄存器2.4 PW…

到蒙古包了,这边天气-9度 很冷

【点我-这里送书】 本人详解 作者&#xff1a;王文峰&#xff0c;参加过 CSDN 2020年度博客之星&#xff0c;《Java王大师王天师》 公众号&#xff1a;JAVA开发王大师&#xff0c;专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生&#xff0c;期待你的…

lua脚本实现redis分布式锁(脚本解析)

文章目录 lua介绍lua基本语法redis执行lua脚本 - EVAL指令使用lua保证删除原子性 lua介绍 Lua 是一种轻量小巧的脚本语言&#xff0c;用标准C语言编写并以源代码形式开放&#xff0c; 其设计目的是为了嵌入应用程序中&#xff0c;从而为应用程序提供灵活的扩展和定制功能。 设…

(动手学习深度学习)第13章 计算机视觉---图像增广与微调

13.1 图像增广 总结 数据增广通过变形数据来获取多样性从而使得模型泛化性能更好常见图片增广包裹翻转、切割、变色。 图像增广代码实现

【开源三方库】Easyui:基于OpenAtom OpenHarmony ArkUI深度定制的组件框架

万冬阳 公司&#xff1a;中国科学院软件所 小组&#xff1a;知识体系工作组 简介 Easyui是一套基于ArkTS语言开发的轻量、可靠的移动端组件库&#xff0c;它是对OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”&#xff09; ArkUI进行深度定制的组件框架。Easyui可扩…

C/C++特殊求和 2021年6月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C幻数求和 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C幻数求和 2021年6月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 如果一个数能够被7整除或者十进制表示中含有数字7&…

NVM安装使用

文章目录 简要说明下载nvm安装nvm使用说明使用nvm下载各个版本的node.js查看已经下载到本地的node有哪些切换到对应的node版本后 简要说明 当我们在项目开发时&#xff0c;我们接手别人的项目、是当时开发的项目使用的node版、找开源项目学习的时候开源项目要求的node版本。和…