Python后端开发系列二:使用poetry管理项目依赖

628 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

第一步:安装Python、配置pip源 -- 这个网上教程很多,此处不再赘述 第二步:安装poetry

pip install pipx --user
pipx install poetry

注:Windows环境转完之后,需要配置环境变量才能使用poetry命令(不过后端工程师,Linux开发环境应该是标配吧~)

poetry常用命令:

  1. 增加生产环境依赖包
poetry add fastapi  # 可以是一个,也可以是多个包同时添加
poetry add uvicorn aiopathlib aioredis
  1. 添加开发环境依赖包
poetry add --dev isort black pflake8 autoflake mypy pytest coverage
  1. 激活虚拟环境
poetry shell
  1. 安装pyproject.toml里面列举的所有依赖包
poetry install
  • 小技巧:由于我敲命令时,常常会把poetry错打成poerty,所以在.bash_aliases自定义了alias
alias poerty=poetry
  1. 服务器上安装生产环境依赖包
poetry install --no-dev
  1. 展示已安装的包
poetry show --tree
  1. 只展示生产环境的依赖包
poetry show --tree --no-dev
  1. 删除生产环境依赖包
poetry remove aiopathlib
  1. 删除开发环境依赖包
poetry remove --dev autoflake
  1. 升级所有依赖包版本
poetry update
  1. 导出依赖到requirements.txt
poetry export --output requirements.txt
  1. 不激活虚拟环境的情况下执行里面的命令
poetry run pytest

使用poetry这几年来遇到的一些问题:

1. poetry install时,没有走pip的配置,导致用的还是pypi的源,慢得无法忍受

  • 这是最近半年内遇到的,环境是Windows,接的是内网 解决

在pyproject.toml里指定默认源, 如:

[[tool.poetry.source]]
name = "tx"
url = "https://mirrors.cloud.tencent.com/pypi/simple/"
default = true

2. poetry install跑到一半时,Crtl+C终止掉,再次执行时就报错

  • 忘记是什么时候遇到的了,最近未再相遇 解决

当时,直接删掉poetry.lock,然后重新poetry install就好了;还有一次是使用which python找到虚拟环境所在路径,然后把整个虚拟环境rm -r掉,再用poetry shell重新创建,然后poetry install就好了