使用 poetry 管理你的python项目的依赖
前言
在前文 使用 requirements.txt 管理你的python项目的依赖 中我们使用 requirements.txt
进行python项目的依赖管理。
本文我们使用 poetry
,其官网地址 https://python-poetry.org/。
poetry
不但可以管理依赖包,甚至可以进行应用打包等,这也是优于 requirements.txt
的地方。
安装
poetry
的安装非常简单,与一般的python包安装没有区别:
pip3 install poetry
值得注意的是,若你曾经安装过 poetry
而又删除或升级了 python3
的版本,则 poetry
依赖的python解释器可能不正确。
这个时候你需要先删除 poetry
,然后重新强制安装 poetry
。
# 先删除
pip3 uninstall poetry
# 强制安装
pip3 install poetry --force
确认安装
$: poetry --version
# 输出
Poetry (version 1.8.3)
创建工程
在使用 PyCharm 创建新的python项目的时候,【python解释器类型】选择 【自定义】,之后【环境】选择 【生成新的】,【类型】的下拉框内选择 【Poetry】即可。 生成的工程如下所示:
比如我生成的更为细致的项目工程的截图如下:
pyproject.toml
[tool.poetry]
name = "stocks"
version = "0.1.0"
description = ""
authors = ["yujinping <yujinping8620@qq.com>"]
readme = "README.md"
packages = [{include = "apis", from = "src"}]
[tool.poetry.dependencies]
# 此处相当于 requirements.txt 要求的依赖包
python = "^3.11"
fastapi = "^0.111.0"
uvicorn = "^0.30.1"
requests = "^2.32.3"
PyMySQL = "^1.1.1"
TA-Lib = "^0.4.30"
python-dotenv = "^1.0.1"
numpy = "^1.26.4"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
# 当你的poetry安装依赖包缓慢的时候增加如下配置,在Mac或Linux上Poetry并不会去 ~/.pip/config 去找全局的源,因此需要手动添加到项目配置里
[[tool.poetry.source]]
name = "aliyun"
url = "https://mirrors.aliyun.com/pypi/simple/"
安装依赖
对于还没有产生 poetry.lock 文件的项目来说,
poetry install
你执行完上述命令后就会自动生成该文件。
若你手工修改了 pyproject.toml
里的依赖项的话,那会要求你在执行 poetry install
之前执行 poetry lock
。
之后添加依赖可以使用 poetry add
,比如添加 requests
包,执行poetry add requests
。
若你想只是添加开发依赖,例如: pytest 那可以执行 poetry add pytest --dev
即可。
打包应用
可以使用
# 构建 wheel安装包和源码zip包
poetry build
# 只是构建 wheel 安装包
poetry build -f wheel
此时构建的程序包将会生成在 dist
文件夹下。