我刚刚启动了一个新的Django项目,并使用Postgresql作为我的数据库,所以我安装了psycopg2以使其正常工作。当我在一开始部署该项目时,该应用程序无法工作,因为生产服务器上没有安装psycopg2。我很快意识到这是因为我的管道文件中缺少psycopg2。
所以我的问题是:
每次为我的项目安装一些东西时,我都需要手动更新pipfile吗?我认为每当我安装某些东西时,pipfile都会自动处理它。
有没有类似于pip freeze > requirements.txt的东西,我可以用一个简短的命令完成更新?
发布于 2019-09-28 18:29:22
每次为我的项目安装一些东西时,我必须手动更新管道文件吗?我认为每当我安装某些东西时,pipfile都会自动处理它。
requirements.txt只是一个文件。没有围绕它的逻辑来更新它(当然,除非你有一个IDE可以做到这一点)。它本身并不是用于包管理器的文件。您可以使用任何文件,也可以使用多个文件(例如,有时会生成一个requirements_test.txt文件,其中包含在测试软件时应该安装的额外软件包)。
您本身不需要在每次安装软件时都更新requirements.txt文件,只要requirements.txt文件在您(在另一台计算机上)部署软件时是正确的,就可以了。
但是,您可以在某种程度上自动执行此操作。例如,如果您使用git subversioning,您可以创建一个pre-commit钩子,它将在您每次提交更改时运行。例如,通过在储存库中构建.git/hooks/pre-commit中的可执行文件。可能看起来像这样的东西:
#!/bin/bash
. env/bin/activate
pip freeze > requirements.txt因此,每次提交时,requirements.txt都将与安装在虚拟环境中的包“协调”。
https://stackoverflow.com/questions/58145340
复制相似问题