poetry 语法格式
poetry [-h] [-q] [-v [<...>]] [-V] [--ansi] [--no-ansi] [-n] <command> [<arg1>] ... [<argN>]
全局 options
- --verbose (-v|vv|vvv):增加消息的详细程度:“-v”表示正常输出,“-vv”表示更详细的输出,“-vvv”表示调试
- --help (-h):帮助文档
- --quiet (-q):静默模式,不输出任何内容
- --ansi:强制 ANSI 输出
- --no-ansi:禁用 ANSI 输出
- --version (-V):版本号
new
通过创建适合大多数项目的目录结构来启动新的Python项目
poetry new my-package
my-package 是路径
默认目录结构
my-package ├── pyproject.toml ├── README.rst ├── my_package │ └── __init__.py └── tests ├── __init__.py └── test_my_package.py
自定义项目名称
poetry new my-folder --name my-package
使用 src 目录
poetry new --src my-package
目录结构
my-package ├── pyproject.toml ├── README.rst ├── src │ └── my_package │ └── __init__.py └── tests ├── __init__.py └── test_my_package.py
init
如果想在已存在的 Python 项目使用 poetry,可以用 init 命令,poetry 会以交互方式创建 pyproject.toml 文件
poetry init
我是一只回车没有自己输入东西的
options
- --name:包的名称
- --description:包的描述
- --author:包的作者
- --python:兼容的 Python 版本
- --dependency:需要具有版本约束的包,格式 foo:1.0.0
- --dev-dependency:开发需求
生成 pyproject 已有的字段 和 options 是可以对齐的
install
从当前项目读取 pyproject.toml 文件,解析依赖项 [tool.poetry.dependencies] 并安装它们
poetry install
- 如果当前目录中有 poetry.lock 文件,它将使用其中的确切版本,而不是解析它们,这确保使用库的每个人都将获得相同版本的依赖项
- 如果没有 poetry.lock 文件,poetry 将在依赖项解析后创建一个
重点
默认会安装 [tool.poetry.dependencies] 和 [tool.poetry.dev-dependencies] 下所有强制安装的(不带 optional)依赖项
--no-dev
不安装开发依赖项 [tool.poetry.dev-dependencies]
poetry install --no-dev
--remove-untracked
移除 poetry.lock 文件中不再存在的旧依赖项
poetry install --remove-untracked
-E|--extras
指定安装的包
--no-root
不要安装根目录包
update
获取所有依赖项的最新版本并更新 poetry.lock 文件
poetry update
指定依赖项进行更新
poetry update requests toml
options
- --dry-run :输出操作,但不执行操作
- --no-dev : 不安装开发依赖项
- --lock:不执行安装,仅更新 poetry.lock 文件