我们的Django项目变得越来越庞大。我们有数百个应用程序,并使用大量的第三方Python包,其中很多需要C编译。当我们需要为主要版本创建新的虚拟环境时,我们的部署需要很长时间。有了这个说法,我希望能够加快速度,从Pip开始。有谁知道Pip的一个分支将并行安装软件包吗?并行Pip安装
步骤我已经采取了迄今:
我寻找那些只是做这个收效甚微的一个项目。我确实发现了这个Github Gist:https://gist.github.com/1971720,但结果几乎与我们单线程的朋友完全一样。
然后我在Github上找到了Pip项目,并开始查看fork的网络以查看是否可以找到任何提到正在执行的操作。那里很混乱。如果必须的话,我会分叉它并尝试自己并行化,我只是想避免花时间这样做。
我在ep.io上看到了一个关于ep.io的演讲,解释了他们的部署内容,他们提到并行化pip,发布.so文件,而不是编译C和镜像Pypi,但他们没有涉及他们如何做或他们用了什么。
使用虚拟机作为部署的单元,让一切都变成OS(Debian的)包是我们做什么。然后,您可以运行自己的存储库,并顺利进行增量升级并完成安装。预先构建OS包是确保您具有可重复安装的好方法,您可以使它们依赖于非python的东西,如apache或nginx。 –
@ NickCraig-Wood虽然这是一个好主意,但我们人手不足,没有时间将所有的python包转换成我们用于.debs的版本。我们已经在KVM上运行了所有的东西。我们只需要尽快部署。 – Kyle
这是一个古老的问题,但现在你可以建立一个pip控制室缓存,大大减少了软件包的安装时间。 –