首先使用 pacman 去安装 pipx。

sudo pacman -S python-pipx
pipx ensurepath

接着通过 pipx 安装poetry

pipx install poetry

使用poetry

创建新项目

poetry new 项目名

如果是已经之前就已经创建的项目,没有使用 poetry,那就使用下面的指令,把它变成 poetry 的形式:

poetry init

添加依赖

poetry add 依赖名

如果有多个依赖用空格隔开。

安装依赖

如果是一个新的项目,里面有 pyproject.toml 文件,就使用下面指令进行依赖的安装:

poetry install

更新依赖

poetry update

上面的是更新所有的依赖,可以后面再价格依赖名字,更新特定的依赖:poetry update 依赖名

查看虚拟环境

在目录下面(注意是在项目下面)输入指令:

poetry env info

就可以看到虚拟环境的一些信息,包括储存为止,python 的版本之类的。

加载虚拟环境

先查看一下有什么虚拟环境,不过这个也只能在 poetry 构建的根目录下面,我目前不知道有什么用,我不是已经知道是什么虚拟环境了么。

poetry env list

然后会有一个后面带着 activated 的虚拟环境。这就是已经激活的环境了。

然后输入指令:

poetry env activate

这个指令会返回一个 source 指令,复制一下,粘贴到终端,就可以在终端使用特定的 python 环境了。

然后就可以输入 python 来使用特定虚拟环境下的交互模式了。

交互模式用来学习非常的方便。

当然也有更快的方法:

source $(poetry env info --path)/bin/activate

删除虚拟环境

还是在项目根目录下进行操作:

poetry env list #查看一下虚拟环境名
poetry env remove 虚拟环境名 # 输入完整名称进行删除

其实一般就一个虚拟环境,直接输入下面指令就行:

poetry env remove python

设置虚拟环境位置

poetry默认的虚拟环境放在了缓存目录中,虽然说是缓存,但其实也不会删除,不如直接就放在当前项目的根目录下方便管理。

并且也适合各种插件工作,比如 coc-python 一个 vim 的语言服务器协议,就会自动查看项目的根目录有没有 .venv 文件加,默认的集中管理,导致没法 LSP 没法起效。

其实输入一行指令就可以了:poetry config virtualenvs.in-project true

如果有已经创建的 poetry 项目,就使用上面的删除虚拟环境,先把虚拟环境删除了。

然后输入指令 poetry install 就行了。

不过这样配置过后,之前的一些操作就没法用了,比如激活环境。

只能用原本的指令去激活环境了:source 项目位置/.venv/bin/activate