Poetry超好用python依赖、包管理工具

server/2024/9/22 22:01:01/

介绍

Poetry 用一个pyproject.toml 代替 setup.py, requirements.txt, setup.cfg, MANIFEST.in and Pipfile文件。
用过vue的肯定看上去会无比熟悉,类似于package.json文件。

[tool.poetry]
name = "my-package"
version = "0.1.0"
description = "The description of the package"license = "MIT"authors = ["Sébastien Eustace <sebastien@eustace.io>"
]repository = "https://github.com/python-poetry/poetry"
homepage = "https://python-poetry.org"# README file(s) are used as the package description
readme = ["README.md", "LICENSE"]# Keywords (translated to tags on the package index)
keywords = ["packaging", "poetry"][tool.poetry.dependencies]
# Compatible Python versions
python = ">=3.8"
# Standard dependency with semver constraints
aiohttp = "^3.8.1"
# Dependency with extras
requests = { version = "^2.28", extras = ["security"] }
# Version-specific dependencies with prereleases allowed
tomli = { version = "^2.0.1", python = "<3.11", allow-prereleases = true }
# Git dependencies
cleo = { git = "https://github.com/python-poetry/cleo.git", branch = "main" }
# Optional dependencies (installed by extras)
pendulum = { version = "^2.1.2", optional = true }# Dependency groups are supported for organizing your dependencies
[tool.poetry.group.dev.dependencies]
pytest = "^7.1.2"
pytest-cov = "^3.0"# ...and can be installed only when explicitly requested
[tool.poetry.group.docs]
optional = true
[tool.poetry.group.docs.dependencies]
Sphinx = "^5.1.1"# Python-style entrypoints and scripts are easily expressed
[tool.poetry.scripts]
my-script = "my_package:main"

常用命令

初始化项目:poetry new poetry-demo

项目结构:
poetry-demo
├── pyproject.toml
├── README.md
├── poetry_demo
│   └── __init__.py
└── tests└── __init__.py

已有项目:poetry init 初始化pyproject.toml文件

安装依赖:

  • 方式一: poetry add pendulum,安装成功后[tool.poetry.group.dev.dependencies]下可以看到
  • 方式二: 修改[tool.poetry.group.dev.dependencies]文件内容,poetry update

查看包信息:poetry show

查看切换虚拟环境:peotry shell

查看环境信息:peotry env info

打包项目:peotry build,默认打包目录dist/**.gz, dist/**.whl

官方文档

https://python-poetry.org/docs/


http://www.ppmy.cn/server/120484.html

相关文章

redis 十大应用场景

Redis 是一个开源的内存数据结构存储系统&#xff0c;广泛应用于各种场景&#xff0c;尤其在高性能、低延迟需求的场景中。以下是 Redis 的一些典型应用场景&#xff1a; 1. 缓存系统 Redis 最常见的用途之一是作为缓存系统&#xff0c;以减少数据库访问的频率&#xff0c;提升…

linux下的日志编写

1、日志初始化创建 2、日志写入 3、日志关闭 log.c #include "log.h"static log_t LOG;//初始化日志文件&#xff0c;在当前目录创建日志文件 int log_init(char *pdirname) {time_t t;struct tm *ptm NULL;char filepath[64] {0};int ret 0;time(&t);ptm …

Qt:懒汉单例(附带单例使用和内存管理)

前言 本文主要写懒汉单例以及单例的释放&#xff0c;网上很多教程只有单例的创建&#xff0c;但是并没有告诉我们单例的内存管理&#xff0c;这就很头疼。 正文 以下是两种懒汉单例的写法 1. 懒汉式单例&#xff08;多线程不安全&#xff0c;但是在单线程里面是安全的&…

pytorch实现RNN网络

目录 1.导包 2. 加载本地文本数据 3.构建循环神经网络层 4.初始化隐藏状态state 5.创建随机的数据&#xff0c;检测一下代码是否能正常运行 6. 构建一个完整的循环神经网络 7.模型训练 8.个人知识点理解 1.导包 import torch from torch import nn from torch.nn imp…

如何将生物序列tokenization为token?

文章目录 原理讲解&#xff1a;代码实现&#xff1a;利用k-mer技术把核苷酸或氨基酸序列tokenization成token输入文件和结果文件&#xff1a; 原理讲解&#xff1a; tokenization是自然语言处理领域非常成熟的一项技术&#xff0c;tokenization就是把我们研究的语言转换成计算…

macOS平台(intel)编译MAVSDK安卓平台SO库

1.下载MAVSDK: git clone https://github.com/mavlink/MAVSDK.git --recursive 2.编译liblzma 修改CMakeLists.txt文件增加C与CXX指令-fPIC set(CMAKE_C_FLAGS "-fPIC ${CMAKE_C_FLAGS}") set(CMAKE_CXX_FLAGS "-fPIC ${CMAKE_CXX_FLAGS}") 修改如下:…

算法题目复习(0909-0917)

1. 连续子序列和 pdd的算法题&#xff0c;根本不记得怎么做 给一个数组&#xff0c;有正数和负数&#xff0c;算出连续子序列的和最大为多少 int maxSubArraySum(vector<int>& nums) {int maxSoFar nums[0];int maxEndingHere nums[0];for (size_t i 1; i <…

Ubuntu 22.04.5 LTS 发布下载 - 现代化的企业与开源 Linux

Ubuntu 22.04.5 LTS (Jammy Jellyfish) - 现代化的企业与开源 Linux Ubuntu 22.04.5 发布&#xff0c;配备 Linux 内核 6.8 请访问原文链接&#xff1a;https://sysin.org/blog/ubuntu-2204/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xf…