Skip to content

Poetry

为什么需要Poetry

python的pip+虚拟环境能基本解决项目依赖和环境隔离,pip移除模块,pip 就不会进行管理了,而是直接把指定的模块移除,留下一堆依赖。

# install
curl -sSL https://install.python-poetry.org | python3 -
# add path
echo 'export PATH="~/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

使用

初始化项目

poetry init
# 生成pyproject.toml

修改源

poetry source add --priority=default mirrors https://pypi.tuna.tsinghua.edu.cn/simple/

# pyproject.toml里新增
# [[tool.poetry.source]]
# name = "mirrors"
# url = "https://pypi.tuna.tsinghua.edu.cn/simple/"
# priority = "default"

# 一般不需要手动去修改pyproject.toml
# 而是通过命令区修改

虚拟环境

poetry env info --path
# 你可以通过以下命令来查看当前项目的虚拟环境路径:

# 配置虚拟环境生成在项目文件中
poetry config virtualenvs.in-project true
# 生成虚拟环境 会生成.env文件夹
poetry env use python3
# 进入虚拟环境
poetry shell

管理包

# 新增包
poetry add package-name
# 删除
poetry remove package-name

# 配置虚拟环境生成在项目文件中
poetry config virtualenvs.in-project true
poetry source add --priority=primary mirrors https://pypi.tuna.tsinghua.edu.cn/simple/
poetry install

run

poetry run python3 xxx.py

group

可以定义不同的gruop,例如 test里面需要加pytest,文档的需要加mkdocs

poetry add  httpx  --group test

导出依赖

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