在heroku flask webapp部署中requirements.txt vs Pipfile?

rmd*_*_po 3 pip heroku requirements.txt python-venv pipfile

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

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

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

Chr*_*ris 5

你不需要requirements.txt

PipfilePipfile.lock该Pipenv用途设计来取代requirements.txt。如果您包含所有三个文件,Heroku 将忽略requirements.txt并只使用 Pipenv。

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