Python Poetry Buildpack 使用教程
项目介绍
Python Poetry Buildpack 是一个用于 Heroku 的构建包,它使得在使用官方 Python 构建包的同时,能够使用 Poetry 管理依赖。这个构建包的主要功能是生成 requirements.txt
和 runtime.txt
文件,以便后续由官方的 heroku/python
构建包处理。
项目快速启动
安装和配置
-
克隆项目仓库:
git clone https://github.com/moneymeets/python-poetry-buildpack.git cd python-poetry-buildpack
-
设置 Heroku 构建包:
heroku buildpacks:clear heroku buildpacks:add https://github.com/moneymeets/python-poetry-buildpack heroku buildpacks:add heroku/python
-
配置 Python 版本(可选):
heroku config:set PYTHON_RUNTIME_VERSION=3.9.1
部署应用
-
初始化 Heroku 应用:
heroku create your-app-name
-
推送代码到 Heroku:
git push heroku master
应用案例和最佳实践
应用案例
假设你有一个使用 Poetry 管理依赖的 Python 项目,你可以使用这个构建包来简化 Heroku 上的部署过程。例如,你可以在项目根目录下创建 pyproject.toml
文件,并定义你的依赖:
[tool.poetry]
name = "your-project-name"
version = "0.1.0"
description = ""
authors = ["Your Name <you@example.com>"]
[tool.poetry.dependencies]
python = "^3.9"
flask = "^1.1.2"
[tool.poetry.dev-dependencies]
pytest = "^5.2"
最佳实践
- 确保
pyproject.toml
文件存在:构建包会根据这个文件生成requirements.txt
。 - 不要手动创建
requirements.txt
:构建包会自动从pyproject.toml
生成。 - 使用
heroku config:set
设置环境变量:例如,设置 Python 版本。
典型生态项目
Paketo Buildpack for Poetry
Paketo Buildpack for Poetry 是一个云原生构建包,它将 Poetry 安装到一个层中,并将其放置在 PATH 上。这个构建包可以在 gcr.io/paketo-buildpacks/poetry
上找到。
集成
下游构建包可以通过生成一个 Build Plan TOML 文件来要求 Poetry 依赖:
[[requires]]
name = "poetry"
[requires.metadata]
version = "21.0.1"
build = true
这个构建包支持一些非必需的元数据选项,例如指定 Poetry 版本和确保 Poetry 在 $PATH
和 $PYTHONPATH
上可用。
通过这些模块的介绍和实践,你可以更好地理解和使用 Python Poetry Buildpack 来简化你的 Python 项目在 Heroku 上的部署和管理。