【python虚拟环境管理】【mac m3】使用poetry管理python项目

文章目录

  • [一. 为什么选择poetry](#一. 为什么选择poetry)
  • [二. poetry相关操作](#二. poetry相关操作)
    • [1. 创建并激活环境](#1. 创建并激活环境)
    • [2. 依赖包管理](#2. 依赖包管理)
      • [2.1. 安装项目依赖](#2.1. 安装项目依赖)
      • [1.2. 管理不同开发环境的依赖](#1.2. 管理不同开发环境的依赖)
      • [1.3. 依赖维护](#1.3. 依赖维护)
      • [1.4. 项目相关](#1.4. 项目相关)

Poetry是Python中用于依赖管理和打包的工具。它允许您声明项目所依赖的库,并将为您管理(安装/更新)它们。Poetry提供了一个锁定文件,以确保可重复安装,并可以构建用于分发的项目。

一. 为什么选择poetry

在项目规模扩大时,依赖关系管理变得更为复杂,此时为什么Poetry 这样的工具变得必要:

  1. 增加的依赖关系数量: 随着项目规模的增大,项目通常会引入更多的依赖关系。不同的依赖可能需要特定版本,而这可能导致依赖冲突。

  2. 环境难以重现: 当项目的依赖关系数量增加时,使用传统的依赖管理工具(如 pip 或 Conda)可能会导致环境难以重现。这意味着在不同的开发环境或部署环境中,依赖的版本和配置可能会有所不同,从而增加了出现问题的可能性。

  3. 维护困难: 仅仅依靠 pip 或 Conda 进行依赖管理,可能需要手动维护 requirements.txt 或 environment.yml 等文件。这种方式可能导致配置文件的冗长和复杂性,增加了维护项目一致性的难度。

  4. Poetry 的优势:

    • Poetry 提供了一个新的方法来管理 Python 项目的依赖关系和环境。它通过统一的 pyproject.toml 文件来管理项目的依赖,提供了更简洁、更清晰的方式定义项目的依赖关系和版本约束。
    • Poetry 还支持锁定依赖版本,确保在不同的环境中都可以重现相同的依赖关系,从而增强了项目的可重现性和一致性。
    • Poetry 还包括便捷的虚拟环境管理功能,可以帮助隔离项目环境,避免与系统或其他项目的依赖冲突。
    • 此外,Poetry 支持项目的打包和发布,使得分发 Python 应用程序变得更加简单和一致。

二. poetry相关操作

1. 创建并激活环境

  1. 创建新的 Poetry 项目
bash 复制代码
# my-project 虚拟环境名称
#这个命令会创建一个名为 `my-project` 的新目录,并在其中生成一个基本的 Poetry 项目结构。  
# 可以使用 --path 或 -p 选项来指定一个特定的目录。
poetry new my-project
  1. 项目初始化
bash 复制代码
# 如果是已有项目转为使用poetry作为依赖管理,可以进行初始化
poetry init
  1. 激活虚拟环境
bash 复制代码
# 在项目创建后,通过如下命令来激活环境
# 这个命令会安装 `pyproject.toml` 中定义的所有依赖项,并激活虚拟环境。

poetry install
  1. 查看当前环境信息
bash 复制代码
poetry env info

2. 依赖包管理

2.1. 安装项目依赖

shell 复制代码
# 安装pyproject.toml文件中的全部依赖

poetry install

# 安装最新稳定版本的flask
poetry add numpy

# 指定具体的版本
poetry add flask=2.22.0 

当然也可以使用pip来安装依赖,只要注意pip安装在此虚拟环境下。

1.2. 管理不同开发环境的依赖

通过添加配置参数--dev来区分不同环境下的依赖包。

shell 复制代码
# 指定为开发依赖,会写到pyproject.toml中的[tool.poetry.dev-dependencies]区域
poetry add pytest --dev 

# 只安装非development环境的依赖,一般部署时使用
poetry install --no-dev  

1.3. 依赖维护

shell 复制代码
# 更新所有锁定版本的依赖包
poetry update

#更新指定依赖包
poetry update numpy

# 卸载依赖包
poetry remove numpy

1.4. 项目相关

shell 复制代码
# 查看项目安装的依赖
poetry show

# 查看可以更新的依赖
poetry show --outdated

# 树形结构查看项目安装的依赖
poetry show -t

参考:

https://blog.csdn.net/qq_40851623/article/details/135769991

相关推荐
个 人 练 习 生几秒前
C++ string 类模拟实现:从底层理解字符串(上)
开发语言·c++·经验分享·学习·程序人生
2601_9669496510 分钟前
多市场量化策略的数据接口应该如何设计:从数据层架构到策略接入
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
坤坤子吖12 分钟前
C++智能指针:RAII、shared_ptr与内存泄漏
开发语言·c++·笔记·学习
全栈弄潮儿19 分钟前
Python实战第1期:Python环境搭建与第一个程序
python
奋斗的阿狸_198622 分钟前
ESP32-S3 + ES7210 四通道麦克风录音上传方案
c语言·开发语言·fpga开发
心易行者24 分钟前
Agent应用+API端点商业化进阶实战:从单体智能体到可付费调用的API全流程
运维·服务器·人工智能·python·apache
weixin1997010801638 分钟前
《1688图片空间API踩坑:img.upload 与 album.* 的防盗链与CDN缓存问题》(附Python源码)
开发语言·python·缓存
ACP广源盛139246256731 小时前
Type‑C 扩展坞方案选型笔记|国产 DP1.4 转 HDMI2.0 桥接芯片 GSV2201S @ACP评估
c语言·开发语言·笔记·硬件架构·硬件工程·国产芯片
布吉岛的石头1 小时前
Java 程序员第 49 阶段11:Java 接 BERT:用 ONNX Runtime 做句向量推理
java·人工智能·python·深度学习·bert·transformer
第25小时记录1 小时前
数据结构与算法 -第 3 章 常用算法-动态规划
数据结构·python