poetry
是一个Python依赖管理和打包工具。主要用途包括:
官网:https://python-poetry.org/
当然你可能要问:不是已经有conda
和pip
了吗,为什么还要再搞个poetry
出来?
如果你进poetry
的官网查看介绍,你会发现poetry
像是一个加强版的pip
和venv
。 poetry
不是conda
这样的大而全的虚拟环境管理,不能像conda那样安装不同版的Python(甚至其它语言的程序)。poetry
专注于解决项目的依赖问题,确保他人能轻松复现你的Python项目(而不掉进依赖地狱)。
另外stackoverflow上有一个讨论:能否将conda和poetry结合起来,conda负责创建不同版本的python(及其它依赖,如cuda),poetry只负责管理python包。https://stackoverflow.com/questions/70851048/does-it-make-sense-to-use-conda-poetry https://medium.com/@silvinohenriqueteixeiramalta/conda-and-poetry-a-harmonious-fusion-8116895b6380
安装
推荐使用pipx
安装: pipx install poetry
也可以使用poetry提供的安装器安装:https://python-poetry.org/docs/#installing-with-the-official-installer
基本使用
常用命令:
:创建新项目
poetry new <project_name>poetry init
:初始化现有项目
poetry add <package>
:添加和安装包 poetry install
:安装pyproject.toml
中的依赖
poetry shell
:激活虚拟环境 exit
:退出虚拟环境和新shell deactivate
:退出虚拟环境且不离开shell
1 设置项目
1.a 新建项目
如果你正在开始一个新的项目,可以用poetry new <project_name>
创建项目:
poetry new poetry-demo
poetry
会生成一些文件。
重点:pyproject.toml
定义了项目及其依赖项。
[tool.poetry]
name = "poetry-demo"
version = "0.1.0"
description = ""
authors = ["xx <xx@163.com>"]
readme = "README.md"
[tool.poetry.dependencies]
python = "^3.10"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
可以看到pyproject.toml
分为几个部分:
-
•
[tool.poetry]
:项目的名称、版本、描述、作者等信息 -
•
[tool.poetry.dependencies]
:项目的Pyhton版本、依赖 -
•
[build-system]
:先不管
1.b (可选)已有项目
通过poetry init
初始化已有项目。运行命令后,poetry会用交互方式让你填写项目信息,然后生成pyproject.toml
。
cd pre-existing-project
poetry init
...
2 使用虚拟环境
如果你使用其他工具(如
conda
)管理虚拟环境,则不需要使用poetry shell
,因为您可能已经激活了该虚拟环境并提供了正确的 python 实例。
推荐使用下面的命令,设置虚拟环境目录为当前项目所在位置:
poetry config virtualenvs.in-project true
激活/退出 虚拟环境
使用 poetry shell
可以创建一个(激活了虚拟环境的)嵌套的shell。
-
• 退出虚拟环境和新shell,输入
exit
。 -
• 退出虚拟环境且不离开shell,输入
deactivate
3.指定依赖项
3.a 在pyproject.toml
中可以手动设置依赖项
[tool.poetry.dependencies]
pendulum = "^2.1"
pendulum = "^2.1"
表示pendulum
包的版本>=2.1.0 <3.0.0
3.b(可选) 使用poetry add
命令添加依赖项
它会自动找到合适的版本并安装包和子依赖项。 poetry add pendulum
有时候找不到合适的版本,可以指定版本。比如在python3.8的条件下安装numpy会安装失败,提示numpy最低支持的python版本是3.9。通过
poetry add numpy==1.24.1
指定numpy版本可以安装成功。
4 安装依赖
(当别人拿到你的项目后,就可以轻松安装依赖了)
在pyproject.toml
所在目录下,执行poetry install
会安装pyproject.homl
中的依赖项。
小结
poetry
最大的亮点是解决了Python包依赖问题。此外还提供了虚拟环境和打包、发布等功能。限于篇幅原因,本文没有介绍poetry
的打包和发布功能。
原文始发于微信公众号(一只大鸽子):poetry:简化Python依赖管理和打包
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/237842.html