1

我的开发机器上有一个 requirements.txt 文件。我已将其推送到 git repo 并将其克隆到服务器上。

我将更改推送到服务器的方式如下:

我将文件冻结在我的开发机器上,然后将文件添加到 git 并将其拉到服务器上并执行 pip install -r requirements.txt。

但是这样做是一次又一次地安装所有的软件包,我不希望这样。我只希望安装那些未安装在服务器上的软件包。

这样做的最佳方法是什么?我还想知道将开发代码推送到服务器的其他有效方法。

4

1 回答 1

1

使用buildout,这是另一种方法。Buildout 在安装前检查包,所以它不会重新安装不需要的包。

它是非常强大的工具。部署时,您只需要 make git push,然后在生产服务器上执行以下操作:

git pull
bin/buildout

而已。你可以阅读一篇关于Buildout 和 pip+virtualenv差异的文章

编辑:


您可以设置PIP_DOWNLOAD_CACHE路径settings.py来告诉 pip 将所有下载的包存储在某个目录(packages例如'')中,这样它就不会再次下载它们:

import os.path

PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__))
PIP_DOWNLOAD_CACHE = os.path.abspath(PROJECT_ROOT+'/packages/'),
于 2013-11-14T13:53:32.350 回答