Poetry - Python 环境管理

文章目录

    • 关于 poetry
    • 初始化项目
      • 从 0 创建项目
      • 已有项目中初始化环境
    • 管理依赖库
      • 添加库
      • 查看依赖
      • 更新
    • 管理环境
      • 查看有哪些虚拟环境
      • 删除环境
    • 执行 python 脚本
      • 进入环境
    • manual


关于 poetry

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

  • 视频教程:https://www.bilibili.com/video/BV1S14y1Q7pP/
    对应文档:https://notes.zhengxinonly.com/environment/use-poetry.html

Poetry 差不多是 pip + venv,的结合体。可以类似 pip 用于管理第三方模块的管理,但是比 pip 的功能强大许多,同时还包含 venv 的虚拟环境管理功能。大致的功能如下:

  1. 管理第三方模块的安装与卸载
  2. 管理虚拟环境
  3. 管理虚拟环境的依赖
  4. 管理打包与发布 其中最重要的是 虚拟环境的依赖,意识本文的重点。至于 打包与发布 对于开发者用的不是很多,在这里就不介绍了。

初始化项目

从 0 创建项目

 poetry new p2

结构如下

% cd p2
p2 % tree
.
├── README.md
├── p2
│   └── __init__.py
├── pyproject.toml
└── tests└── __init__.py

已有项目中初始化环境

poetry init

然后会跳出来一连串的互动对话,用于创建项目的配置文件

% poetry initThis command will guide you through creating your pyproject.toml config.Package name [t3]:  p1
Version [0.1.0]:  
Description []:  
Author [S <1625608596@qq.com>, n to skip]:  
License []:  
Compatible Python versions [^3.11]:  Would you like to define your main dependencies interactively? (yes/no) [yes] 
You can specify a package in the following forms:- A single name (requests): this will search for matches on PyPI- A name and a constraint (requests@^2.23.0)- A git url (git+https://github.com/python-poetry/poetry.git)- A git url with a revision (git+https://github.com/python-poetry/poetry.git#develop)- A file path (../my-package/my-package.whl)- A directory (../my-package/)- A url (https://example.com/packages/my-package-0.1.0.tar.gz)Package to add or search for (leave blank to skip):  Would you like to define your development dependencies interactively? (yes/no) [yes] 
Package to add or search for (leave blank to skip): Generated file[tool.poetry]
name = "p1"
version = "0.1.0"
description = ""
authors = ["S <1625608596@qq.com>"]
readme = "README.md"[tool.poetry.dependencies]
python = "^3.11"[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"Do you confirm generation? (yes/no) [yes] 

直接全部一路回车,然后看一下生成的 pyproject.toml 配置文件:

[tool.poetry]
name = "p1"
version = "0.1.0"
description = ""
authors = ["S <1625608596@qq.com>"]
readme = "README.md"[tool.poetry.dependencies]
python = "^3.11"[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

管理依赖库

添加库

poetry add flask 

其他选项

  • poetry add flask :安装最新稳定版本的flask
  • poetry add pytest --dev : 指定为开发依赖,会写到pyproject.toml中的[tool.poetry.dev-dependencies]区域
  • poetry add flask=2.22.0 : 指定具体的版本
  • poetry install : 安装pyproject.toml文件中的全部依赖
  • poetry install --no-dev : 只安装非development环境的依赖,一般部署时使用

将在 [tool.poetry.dependencies] 键下面添加 flask 信息


[tool.poetry.dependencies]
python = "^3.11"
flask = "^3.0.3"

查看依赖

poetry show

按树形结构查看

poetry show -t 

更新

更新当前环境所有依赖

poetry update

更新指定依赖包

如 requests

poetry update requests

卸载指定依赖包

poetry remove requests

管理环境

查看有哪些虚拟环境

poetry env list --full-path

删除环境

你可以直接删除 虚拟环境文件夹

删除指定解析器版本对应环境:

poetry env remove python2 

执行 python 脚本

进入环境

poetry shell

终端命令行前缀会显示为 环境信息:(p2-py3.11)


你可以不用激活环境,因为poetry会自动检测当前虚拟环境

如果想在当前目录对应的虚拟环境中执行命令,可以使用以下命令:

poetry run <你的命令> # 例如: poetry run python flask.py

manual


% poetry --help

Description:
Lists commands.

Usage:

list [options] [–] []


Arguments:
namespace The namespace name


Options:

  • -h, --help, Display help for the given command. When no command is given display help for the list command.
  • -q, --quiet, Do not output any message.
  • -V, --version, Display this application version.
    --ansi, Force ANSI output.
    --no-ansi, Disable ANSI output.
  • -n, --no-interaction , Do not ask any interactive question.
    --no-plugins, Disables plugins.
    --no-cache, Disables Poetry source caches.
  • -C, --directory=DIRECTORY, The working directory for the Poetry command (defaults to the current working directory).
  • -v|vv|vvv, --verbose, Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug.

Help:
The list command lists all commands:

poetry list

You can also display the commands for a specific namespace:

poetry list test

Available commands:

  • about Shows information about Poetry.
  • add Adds a new dependency to pyproject.toml and installs it.
  • build Builds a package, as a tarball and a wheel by default.
  • check Validates the content of the pyproject.toml file and its consistency with the poetry.lock file.
  • config Manages configuration settings.
  • export Exports the lock file to alternative formats.
  • help Displays help for a command.
  • init Creates a basic pyproject.toml file in the current directory.
  • install Installs the project dependencies.
  • list Lists commands.
  • lock Locks the project dependencies.
  • new Creates a new Python project at .
  • publish Publishes a package to a remote repository.
  • remove Removes a package from the project dependencies.
  • run Runs a command in the appropriate environment.
  • search Searches for packages on remote repositories.
  • shell Spawns a shell within the virtual environment.
  • show Shows information about packages.
  • update Update the dependencies as according to the pyproject.toml file.
  • version Shows the version of the project or bumps it when a valid bump rule is provided.

cache

  • cache clear Clears a Poetry cache by name.
  • cache list List Poetry’s caches.

debug

  • debug info Shows debug information.
  • debug resolve Debugs dependency resolution.

env

  • env info Displays information about the current environment.
  • env list Lists all virtualenvs associated with the current project.
  • env remove Remove virtual environments associated with the project.
  • env use Activates or creates a new virtualenv for the current project.

self

  • self add Add additional packages to Poetry’s runtime environment.
  • self install Install locked packages (incl. addons) required by this Poetry installation.
  • self lock Lock the Poetry installation’s system requirements.
  • self remove Remove additional packages from Poetry’s runtime environment.
  • self show Show packages from Poetry’s runtime environment.
  • self show plugins Shows information about the currently installed plugins.
  • self update Updates Poetry to the latest version.

source

  • source add Add source configuration for project.
  • source remove Remove source configured for the project.
  • source show Show information about sources configured for the project.

伊织 2024-05-14(二)
个人觉得这个体验和 rust - cargo 很相似

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

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

相关文章

外贸客户采集软件有哪些?

外贸客户采集软件可以帮助企业收集潜在客户的信息&#xff0c;以便进行市场分析和客户开发。以下是一些常用的外贸客户采集软件&#xff1a; 易谷歌地图数据采集大师&#xff1a;基于谷歌地图数据采集的软件&#xff0c;能够采集任意国家、地区的企业地址、电话号码、邮件地址等…

SpringCloud 2023.0.1

本文介绍如何使用 springboot3及cloud2023 进行微服务模块化开发 采用父-module 模块开发 父工程 demo-java pom.xml <!--配置 springboot的依赖的版本号, 方便 module 进行继承--><dependencyManagement><dependencies><!--增加 springboot的依赖--&g…

浅谈-数据分析之道--数据思维的培养

第一篇数据思维 数据分析中最重要的是数据思维&#xff0c;对于业务场景中常见的问题&#xff0c;只要有分析问题的思路和方法&#xff0c;无论用什么工具都可以得到结果。 数据思维是数据分析师分析问题的思路和角度。 第一章&#xff0c;什么是数据思维 什么是数据治理&a…

适合建站的香港服务器有哪些,企业和个人建站的

香港服务器适合外贸建站、个人和企业建站&#xff0c;尤其是中小企业官网非常适合放在香港服务器上&#xff0c;因为香港服务器在国内外的访问速度都很快&#xff0c;也就意味着全球客户都能访问到你的网站。 对于很多新手小白来说不知道怎么才能买到靠谱稳定的香港服务器&…

mysql主从热备+keepalived 部署mysql高可用主备模式

目录 1、环境准备 2、分别在主服务器和备用服务器上安装keepalived 3、修改keepalived服务的配置文件 3.1 修改主服务器上的keepalive服务的配置文件 3.2 修改备用服务器上的keepalive服务配置文件 4、编写mysql监控脚本放到主服务器上 5、在主服务器和备用服务器上查看…

水泡传感器内部结构

水泡传感器内部结构&#xff1a; 水泡传感器放大电路 电路是基于1.6V做的TIA I2V&#xff0c; 也就是输出部分基于1.6V做电压的增加或减少。

Milvus 快速入门

引言 在本篇文章中&#xff0c;我们将介绍 Milvus 的基本概念&#xff0c;并通过一个简单的示例展示如何在 Milvus 中创建集合、插入向量和执行搜索。最后&#xff0c;我们将概览 Milvus 提供的 API。 一、基本概念 1.1 集合 (Collection) 在 Milvus 中&#xff0c;集合类似…

如何组织 Vue 项目

介绍 在启动 Vue 项目时&#xff0c;思考项目结构至关重要。主要考虑因素是预期项目的规模。在本篇博文中&#xff0c;我将探讨适用于不同规模 Vue 项目的各种结构。这个考虑与康威定律相吻合&#xff1a; “设计系统的组织受限于产生这些组织沟通结构的设计。” - 梅尔康威 基…

C语言之指针初阶

目录 前言 一、内存与地址的关系 二、指针变量 三、野指针 四、const 五、传值调用与传址调用 总结 前言 本文主要介绍C语言指针的一些基础知识&#xff0c;为后面深入理解指针打下基础&#xff0c;因此本文内容主要包括内存与地址的关系&#xff0c;指针的基本语法&…

WebRTC实时音视频通话之语音通话设计与实践

一、背景 在移动互联网流量时代&#xff0c;很多业务场景都有音视频通信的需求&#xff0c;比如IM场景&#xff0c;除了文字交流还需要音视频通话进行实时交互。为了帮助58、赶集、安居客等业务线更好的为用户提供服务&#xff0c;节约沟通成本&#xff0c;提升效率&#xff0…

【Linux】19. 习题②

2022-11-12_Linux环境变量 1. 分页存储(了解) 一个分页存储管理系统中&#xff0c;地址长度为 32 位&#xff0c;其中页号占 8 位&#xff0c;则页表长度是__。 A.2的8次方 B.2的16次方 C.2的24次方 D.2的32次方 【答案解析】A 页号即页表项的序号&#xff0c;总共占8个二进制…

STM32的FLASH学习笔记

不同型号的 STM32&#xff0c;其 FLASH 容量也有所不同&#xff0c;最小的只有 16K 字节&#xff0c;最大的则达到了1024K 字节。大容量产品的闪存模块组织如图所示&#xff1a; STM32 的闪存模块由&#xff1a;主存储器、信息块和闪存存储器接口寄存器等 3 部分组成。 ​ ①主…

Java环境搭建(二)Notepad++和IDEA的下载

Notepad&#xff08;不推荐使用&#xff09; 高级记事本 下载地址 Notepad (juxinwk1.cn) 下载安装后一直下一步就可以了 注&#xff1a;改一下路径还有建立快捷方式&#xff08;自己选择&#xff09; IDEA 集成环境 下载地址 IntelliJ IDEA – the Leading Java and Kotl…

React 第三十二章 虚拟DOM

面试题&#xff1a;什么是虚拟DOM&#xff1f;其优点有哪些&#xff1f; 标准且浅显的答案 虚拟dom本质上就是一个普通的 JS 对象&#xff0c;用于描述视图的界面结构 虚拟 DOM 最早是由 React 团队提出来的&#xff0c;因此 React 团队在对虚拟 DOM 的定义上面有绝对的话语权。…

若依-生成主子表

1. sql语句建表导入到数据库中&#xff1a; -- ---------------------------- -- Table structure for t_ques————主表 -- ----------------------------CREATE TABLE ques (ques_id INT NOT NULL AUTO_INCREMENT COMMENT Id,name VARCHAR(255) NOT NULL COMMENT 测评名称…

未授权访问:Rsync 未授权访问漏洞

目录 1、漏洞原理 2、环境搭建 3、未授权访问 4、利用rsync下载任意文件 5、利用rsync反弹shell 防御手段 今天继续学习各种未授权访问的知识和相关的实操实验&#xff0c;一共有好多篇&#xff0c;内容主要是参考先知社区的一位大佬的关于未授权访问的好文章&#xff0c…

ApiHug - 闭门造车, 出门合辙

&#x1f917; ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱&#xff0c;有温度&#xff0c;有质量&#xff0c;有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace The Nex…

RocketMQ:新增consumer消费组group从最新消息开始消费skip last offset message

场景 想创建一个新的consumer去消费一个已经再使用的topic时&#xff0c;默认情况下会从topic中的第一条消息开始消费&#xff0c;大多数情况是需要从最新的消息开始。然后再使用CONSUME_FROM_LAST_OFFSET设置时并不会对新的consumer生效&#xff0c;它只是在停用consumer重新启…

MySQL单表查询案例演示

目录 一、创建数据库lianxi 二、选择数据库为lianxi 三、新建一个数据表grade&#xff0c;在grade表中插入数据 四、开始进行查询操作&#xff08;验证表中数据&#xff09; 1、查询1945班的成绩信息 2、查询1945班&#xff0c;语文成绩大于60小于90的成绩信息 3、查询学…

优雅谈论大模型8:神经网络与矩阵

向量与矩阵 上个章节的神经网络是为了解Transformer或者Mamba做好铺垫&#xff0c;在和后辈交流过程中发现有个障碍&#xff0c;那就是向量和矩阵。其实向量和矩阵的表达方式不是所有人都很习惯。在继续下面的章节之前小编认为有必要将向量、矩阵和神经网络做下补充解释。 向…