【问题标题】:Versioning a virtualenv for a django deployment - pip output of requirements对 django 部署的 virtualenv 进行版本控制 - 要求的 pip 输出
【发布时间】:2017-04-21 17:05:01
【问题描述】:

我目前正在使用 Fabric 为 django 应用程序编写部署脚本。对我来说,拥有一个用于对应用程序使用的 virtualenv 进行版本控制的系统似乎是必要/有用的,以防需要回滚。

我能想到的最可靠的方法是创建名称等于需求文件内容的 md5 哈希的 virtualenvs。这意味着当需求发生变化时,校验和将发生变化,我可以使用新哈希复制/更新 virtualenv 并保留旧哈希 virtualenv 以防我需要回滚(然后只需切换“当前”符号链接) .

问题是我在例如使用嵌套的需求文件语法。我的 production.txt 要求文件 (-r base.text),因此 md5 哈希不会考虑基本要求更改等。

在安装这些文件之前,是否有任何输出 pip 可以提供解析这些文件?我不想安装它们然后 pip freeze 只是为了弄清楚是否发生了变化。

【问题讨论】:

  • 不确定我明白了。如果你使用需求文件,并且你有 git 之类的代码版本控制,那么回滚不会也回滚需求文件吗?

标签: django pip virtualenv


【解决方案1】:

与其使用嵌套需求,不如直接使用简单的 unix 工具,如 cat 来计算 md5。并且只需使用多个需求文件。

或者如果你真的想要我们嵌套的需求,你需要编写一个小 shell 脚本,用 grep 搜索 -r file.txt 并将它添加到你的 md5 计算中。

不过,这是个好主意。散列 requirements.txt 文件并使用该名称保存环境。在分布式构建系统中也可以轻松快速地缓存它。

【讨论】:

    猜你喜欢
    • 2014-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多