Poetry vs npm:两个包管理器的迷人相似性
我们知道 Python 有自己的生态链。Python 版本也非常多,为了处理这么多的版本造成的包问题,Python 有了虚拟环境。在开始之前本文默认对 Python 的生态有了基础的了解(pip 等等)。
一、虚拟环境
站在前端工程化(Node.js)的角度,简单可以理解为一个项目下的 node_modules 文件夹,是本项目可用的,具有项目隔离特性。
虚拟环境最重要的也就是环境隔离。但是 Python 不会像前端一样项目文件夹上面挂在一个 node_modules 文件夹,而是在特定的文件夹中安装依赖。
但是,一个虚拟环境还不足解决 Python 工程化中面对的问题,例如:
管理项目
包管理
发布包
...
下面我们就盘点一下 Python 的包管理工具 Poetry 的用法。
二、Poetry 简介
Poetry 是一个用于 Python 项目管理的工具,提供依赖管理和打包功能。 Poetry 使用 pyproject.toml 项目配置文件,包含项目的元数据、依赖和工具设置。Poetry 自动生成 虚拟环境 隔离的 Python 环境,避免项目间的依赖冲突。
三、安装与配置
安装
配置
配置项目
[tool.poetry]:定义项目的基本信息和元数据。
[tool.poetry.dependencies]:列出项目运行所需的依赖包及其版本。
[tool.poetry.dev-dependencies]:列出开发过程中所需的依赖包及其版本。
[tool.poetry.scripts]:定义可通过命令行运行的脚本。
[tool.poetry.extras]:定义项目的可选功能及其额外依赖。
[build-system]:配置项目构建系统的工具和后端。
[tool.poetry.source]:配置额外的包源(例如私有源)。
[tool.poetry.http-basic]:配置包源的 HTTP 基本认证信息。
配置示例
四、项目管理
使用 Poetry 作为项目管理可能是日常中使用最多的内容,下面是一些常用关于项目的命令:
创建项目
项目结构
依赖管理
添加依赖:
更新依赖:
删除依赖:
五、虚拟环境
激活虚拟环境
运行命令
六、构建与发布
构建包
发布包
七、其他功能
版本管理
依赖解析
环境变量
八、高级用法
插件:Poetry 支持插件扩展功能。可以通过插件管理工具进行扩展。
自定义脚本:在 pyproject.toml 文件中配置自定义脚本来扩展 Poetry 的功能。
九、常见问题与故障排除
依赖冲突:检查 pyproject.toml 和 poetry.lock,使用 poetry update 解决版本冲突。
虚拟环境问题:确保 Poetry 环境路径配置正确,使用 poetry env info 查看虚拟环境信息。
十、小结
本文全面介绍了 Python 包管理项目管理,虚拟环境管理工具的 Poetry 的基本用法。对比不同的编程语言对包的管理其实都是相似的,Peotry 的与 npm 极为相似,你掌握其中一个另一个基本也熟悉了。
作者:编程杂货铺
链接:https://juejin.cn/post/7402055702770401292
评论