python poetry的教程

Poetry

在这里插入图片描述

Python世界中,Poetry是一个近年来备受瞩目的工具,它为开发者提供了一个灵活且强大的依赖管理解决方案。Poetry可以帮助开发者管理项目的依赖关系,同时提供了一系列的工具和功能,使开发者能够更轻松地创建和管理复杂的项目。在这篇文章中,我们将深入了解Poetry的基本概念、特点和优势。

  • Poetry的基本概念

Poetry是一个Python的依赖管理工具,它旨在提供一种更简单、更直观的方式来管理Python项目的依赖关系。与传统的pip工具相比,Poetry具有更多的功能和优势,如自动解决依赖冲突、创建虚拟环境、管理项目配置等。

  • Poetry的特点和优势

以下是Poetry的一些主要特点和优势:

  1. 灵活的依赖管理:Poetry使用明了的语法来定义项目的依赖关系,开发者可以轻松地指定项目所需的库及其版本。此外,Poetry还可以自动解决依赖冲突,确保项目在不同环境下都能够正常运行。
  2. 虚拟环境管理:Poetry提供了虚拟环境的支持,使得不同项目之间的依赖关系不会相互干扰。开发者可以根据项目需求创建独立的虚拟环境,并在其中安装项目所需的库。
  3. 自动构建和发布:Poetry集成了构建和发布工具,可以帮助开发者自动化构建和发布Python项目。通过定义构建规范,开发者可以轻松地将项目打包为可分发的格式。
  4. 配置管理:Poetry提供了配置管理的功能,开发者可以在项目中使用配置文件来定义不同环境下的参数和设置。这使得项目在不同环境下能够自动适应相应的配置。
  5. 广泛的社区支持:Poetry得到了广泛的社区支持,许多知名的Python库都提供了Poetry支持。这意味着开发者在使用Poetry管理项目时,可以轻松地找到所需的依赖库。
  6. 与其他工具集成:Poetry可以与许多其他工具集成,如Git、CI/CD工具等。通过集成,开发者可以轻松地将依赖管理流程与项目的其他部分集成在一起。

安装

  • install : curl -sSL https://install.python-poetry.org | python3 -

  • add env : export PATH="/Users/chendongsheng/.local/bin:$PATH"

  • 给on-myzsh添加自动完成

mkdir $ZSH_CUSTOM/plugins/poetry
poetry completions zsh > $ZSH_CUSTOM/plugins/poetry/_poetry

plugins(
	poetry
	...
	)

基础使用技巧

  • 新建一个项目: poetry new poetry-demo

    • pyproject.toml: 文件是最重要的
  • 初始化已经存在的项目:

    cd pre-existing-project
    poetry init
    
# 使用poetry配置文件的python 环境,默认放在.venv的文件夹中
poetry env use python
# 进入当前虚拟环境
poetry shell

# 退出虚拟环境
exit

# 添加新的依赖项目
poetry add flask

# 现实当前的项目list
poetry show
poetry show --tree 

# 移除依赖
poetry remve xxx

# 使用poetry的python环境进行执行
poetry run python your_script.py

# 安装已经有的poetry环境
poetry install

分组管理


# 将black新增到dev分支
poetry add black --group dev
poetry add pytest --group test

# 安装所有组的依赖
poetry install

# 安装 main 组的依赖 (三种写法)
poetry install --with main
poetry install --only main
poetry install --only-root

# 选择安装哪些组 (--without优先级高于with)
poetry install --with test,docs --without docs

# 将分组内的依赖都删除
poetry remove mkdocs --group docs

# 同步poetry的依赖
poetry install --sync

# 选择性同步poetry的某一个组
poetry install --without dev --sync
poetry install --with docs --sync
poetry install --only dev

配置

  • 配置路径

    • Linux: $XDG_CONFIG_HOME/pypoetry or ~/.config/pypoetry

    • Windows: %APPDATA%\pypoetry

    • MacOS: ~/Library/Application Support/pypoetry

  • 数据文件夹

    • Linux: $XDG_DATA_HOME/pypoetry or ~/.local/share/pypoetry
    • Windows: %APPDATA%\pypoetry
    • MacOS: ~/Library/Application Support/pypoetry
  • 缓存文件夹

    • Linux: $XDG_CACHE_HOME/pypoetry or ~/.cache/pypoetry
    • Windows: %LOCALAPPDATA%\pypoetry
    • MacOS: ~/Library/Caches/pypoetry
# 查看相关的配置
poetry config --list

# 将xxx.xxx改为true
poetry config xxx.xxx true
poetry config virtualenvs.path /path/to/cache/directory/virtualenvs
poetry config virtualenvs.path --unset

安装源

  1. default source, 默认来源,
  2. primary sources, 主要资源,
  3. implicit PyPI (unless disabled by another default source or configured explicitly),
    隐式 PyPI(除非被另一个默认源禁用或显式配置),
  4. secondary sources (DEPRECATED),
    二手来源(已弃用),
  5. supplemental sources. 补充来源。
poetry source add --priority=supplemental foo https://pypi.example.org/simple/

# 新加源foo
poetry source add foo https://foo.bar/simple/
# 将foo源设置为默认源
poetry source add --priority=default foo https://foo.bar/simple/

管理环境

# 设置使用哪个虚拟环境的python
poetry env use /full/path/to/python
poetry env use python3.7

# 显示环境
poetry env info

# 获取环境路径
poetry env info --path
# 获取python可执行路径
poetry env info --executable


# 获取当前环境的所有依赖
poetry env list

# 删除环境
poetry env remove /full/path/to/python
poetry env remove python3.7
poetry env remove 3.7
poetry env remove test-O3eWbxRl-py3.7

依赖规范

poetry add django@^4.0.0
poetry add django@latest

导出requuirement

需要安装插件: Export Poetry Plugin

  • install cmd

poetry self add poetry-plugin-export

poetry export -f requirements.txt --without-hashes --output requirements.txt

插件安装

# 插件安装
poetry self add poetry-plugin
# 插件卸载
poetry self remove poetry-plugin

参考文档

poetry所有制指令参考

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sexyluna/article/details/134302162