【发布时间】:2012-04-30 20:15:12
【问题描述】:
在我目前工作的地方,我们就将 Python 代码部署到生产服务器进行了一场小型辩论。我投票决定在服务器本身上构建二进制依赖项(如 python mysql 驱动程序),只使用pip install -r requirements.txt。这很快被否决了,没有更好的解释“我们不会将编译器放在实时服务器上”。因此,我们的部署过程变得复杂和过度设计,只是为了避免这个编译步骤。
我的问题是:这些天来避免在实时服务器上安装编译器的原因是什么?
【问题讨论】:
-
您不需要安装这些依赖项才能在生产环境中运行吗?
-
@DeaconDesperado,是的,但它们不需要建立在它们最终将驻留的盒子上。
-
我知道 PIP 会在下载软件包后构建它们,但我从来没有听说过这会被认为是部署环境的“破坏交易”,尤其是因为它只需要执行一次。 pip freeze 结合fabric 和virtualenv 几乎是我所熟悉的唯一部署方法。我和你在一起,菲尔,对我来说听起来像是不必要的过度复杂化,至少在 PIP 和 python 的情况下。
标签: python deployment compiler-construction pip binaries