requirements.txt 与 heroku flask webapp 部署中的 Pipfile 对比?

requirements.txt vs Pipfile in heroku flask webapp deployment?

我正在尝试将 Flask webapp 部署到 Heroku,但我看到关于我需要将哪些文件包含在 git 存储库中的相互矛盾的信息。

我的 webapp 是在虚拟环境 (venv) 中构建的,所以我有一个 Pipfile 和一个 Pipfile.lock。我还需要 requirements.txt 吗?一个会取代另一个吗?

我的另一个相关问题是如果某个包在虚拟环境中安装失败会发生什么:我可以手动将它添加到 requirements.txtPipfile 吗?这会有效地做与 pipenv install ... 相同的事情,还是除了将包添加到需求列表之外做其他事情(考虑到 Heroku 在部署时安装包)。

你不需要requirements.txt

Pipenv使用的PipfilePipfile.lock旨在替代requirements.txt。如果包含所有三个文件,Heroku 将忽略 requirements.txt 并仅使用 Pipenv。

如果您在本地使用特定库时遇到构建问题,我强烈建议您深入研究并让所有内容在您的本地机器上运行。但这在技术上不是必需的...只要 PipfilePipfile.lock 包含正确的信息(包括哈希值),Heroku 就会尝试安装您的依赖项。