
`Poetry` 是一个用于 [Python 项目](https://so.csdn.net/so/search?q=Python%20%E9%A1%B9%E7%9B%AE&spm=1001.2101.3001.7020)依赖管理和打包的工具。它使得项目的管理、依赖安装和打包等操作更加简单和高效。下面是一些常用的 `Poetry` 命令及其解释:
## 0. poetry的安装,不推荐使用pip安装
- [poetry的官网](https://python-poetry.org/docs/#installing-with-the-official-installer)
```js
官网推荐的是:-> 在 Windows PowerShell 中运行以下命令安装 Poetry:
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
```

## 1. 初始化项目
- poetry new \<project-name\> 创建一个新的 Python 项目。
```python
poetry new my_project
会生成一个新的文件夹 my_project,其中包含一个基础的 Python 项目结构(pyproject.toml、README.rst、tests 等)。
```
- poetry init 在现有目录中初始化一个新的 pyproject.toml 文件,并逐步引导你配置项目的元数据和依赖项。
## 2.依赖管理
- poetry add \<package\> 向项目中添加一个新的依赖包。默认安装最新版本。
```js
poetry add requests
你可以通过指定版本来安装特定版本:
poetry add requests@2.25.0
```
- poetry add \<package\> --dev 向项目中添加开发依赖(例如用于测试、构建工具等)。这些依赖不会出现在生产环境中。
```js
poetry add pytest --dev
```
- poetry remove \<package\> 移除项目中的某个依赖包。
```js
poetry remove requests
```
- poetry show 显示当前项目的所有已安装依赖及其版本信息。
```js
poetry show
```
- poetry show \<package\> 显示指定包的信息(如版本、依赖关系等)。
```js
poetry show requests
```
## 3. 虚拟环境管理
- poetry install 安装项目中列出的所有依赖包,基于 pyproject.toml 和 poetry.lock 文件。这个命令会自动创建虚拟环境(如果尚未创建)。
```js
poetry install
```
- poetry update 更新所有依赖包到最新版本(符合 pyproject.toml 中的版本要求)。
```js
poetry update
```
- poetry env info 查看当前虚拟环境的信息。
```js
poetry env info
```
- poetry env list 列出所有虚拟环境。
```js
poetry env list
```
- poetry shell 激活虚拟环境,进入一个新的 shell 会话。
```js
poetry shell
```
- poetry run <command> 在项目的虚拟环境中执行命令。例如,运行 pytest 进行测试:
```js
poetry run pytest
```
## 4. 构建和打包
- poetry build 构建项目包,将其打包为 .tar.gz 和 .whl 文件,准备发布到 PyPI 或其他包管理平台。
```js
poetry build
```
- poetry publish 将项目包发布到 PyPI 或其他指定的 Python 包索引。
```js
poetry publish --build
```
- 发布时可以指定上传的包索引:
```js
poetry publish --repository <repository-name> --build
```
## 5. 项目发布
- poetry version 查看或更新项目的版本。你可以使用以下选项来增加版本:
- poetry version patch (增加补丁版本)
- poetry version minor (增加次版本)
- poetry version major (增加主版本)
- poetry version \<version\> (设置一个指定的版本号)
> 示例:
```js
poetry version patch poetry version 1.2.0
```
## 6. 其他命令
- poetry check 检查 pyproject.toml 文件和项目的完整性,确保没有错误。
```js
poetry check
```
- poetry lock 锁定项目的依赖版本并生成或更新 poetry.lock 文件。通常在更改依赖或版本时自动运行。
```js
poetry lock
```
- poetry config 配置 Poetry 设置(如缓存目录、PyPI 源等)。
```js
poetry config --list poetry config cache-dir /path/to/cache
```
- poetry help 查看帮助信息,列出所有可用命令和选项。
```js
poetry help
```
## 7. 示例项目流程
### 7.1 初始化项目:
```js
poetry new my_project
```
### 7.2 添加依赖:
```js
poetry add requests
```
### 7.3 安装依赖:
```js
poetry install
```
### 7.4 激活虚拟环境并运行代码:
```js
poetry shell python my_project/main.py
```
### 7.5 构建项目:
```js
poetry build
```
### 7.6 发布到 PyPI:
```js
poetry publish --build
```