小编典典

平行点安装

python

我们的Django项目越来越庞大。我们有数百个应用程序,并使用大量的第三方Python软件包,其中许多都需要编译C。需要为主要版本创建新的虚拟环境时,我们的部署需要很长时间。话虽如此,我希望从Pip开始加快工作速度。有谁知道会并行安装软件包的Pip分支?

到目前为止,我已采取的步骤:

  • 我一直在寻找一个无法成功完成此任务的项目。我确实找到了这个Github Gist:https//gist.github.com/1971720,但结果与我们的单线程朋友几乎完全相同。

  • 然后,我在Github上找到了Pip项目,并开始在分支网络中进行查找,以查看是否有提及我所做的任何提交。那里很乱。我会分叉它,如果需要的话,我自己尝试并行化它,我只是想避免花时间去做。

  • 我在ep.io的DjangoCon 2011上看到一个演讲,解释了他们的部署内容,他们提到并行化pip,传送.so文件,而不是编译C和镜像Pypi,但是他们没有谈到它们的工作方式或用途。


阅读 238

收藏
2021-01-20

共1个答案

小编典典

您是否分析了部署过程以了解实际时间?令我感到惊讶的是,运行多个并行点子进程并不能大大加快速度。

如果花时间查询PyPI和查找软件包(尤其是当您还从Github和其他来源下载时),则设置自己的PyPI可能会有所帮助。您可以自己托管PyPI,并将以下内容添加到requirements.txt文件(docs):

--extra-index-url YOUR_URL_HERE

或以下内容,如果您希望完全取代官方PyPI:

--index-url YOUR_URL_HERE

由于所有软件包现在都在附近的计算机上找到,因此这可能会加快下载时间。

很多时间还需要使用C代码编译程序包,例如PIL。如果这成为瓶颈,那么值得研究在多个进程中编译代码。您甚至可以在计算机之间共享编译的二进制文件(但是许多事情都需要类似,例如操作系统,CPU字长等)

2021-01-20