保持Pipfile更新

时间:2019-09-28 10:17:24

标签: django postgresql pipenv pipfile

我刚开始一个新的Django项目,并使用Postgresql作为数据库,所以我安装了psycopg2使其正常运行。当我在一开始部署项目时,该应用程序无法正常工作,因为生产服务器上未安装psycopg2。我很快意识到这是因为psycopg2在我的pipfile中丢失了。

所以我的问题是:

每次为项目安装某些东西时,我都必须手动更新pipfile吗?我以为pipfile会在每次安装某些东西时自动进行处理。

是否有与pip freeze > requirements.txt类似的地方,我可以用一个简短的命令进行更新?

1 个答案:

答案 0 :(得分:0)

  

每次为项目安装某些东西时,我都必须手动更新pipfile吗?我以为pipfile每次安装时都会自动处理。

requirements.txt只是一个文件。它周围没有逻辑来更新该逻辑(除非您有执行此操作的IDE)。它本身不是用于程序包管理器的文件。您可以使用任何文件,也可以使用多个文件(例如,有时制作一个requirements_test.txt文件,其中包含在测试软件时应安装的额外软件包)。

您本身不需要每次安装软件都更新requirements.txt文件,只要在(在另一台计算机上)部署软件时requirements.txt文件是正确的即可。

但是,您可以在某种程度上使它自动化。例如,如果使用git颠覆,则可以制作一个pre-commit钩子,该钩子在您提交更改时每次都会运行。例如,通过在存储库中的.git/hooks/pre-commit中构建一个可执行文件文件。可能看起来像这样:

#!/bin/bash

. env/bin/activate
pip freeze > requirements.txt

每次提交时,requirements.txt将与虚拟环境中安装的软件包“协调”。