当前位置: 首页 > 面试题库 >

平行点安装

牛兴安
2023-03-14
问题内容

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

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

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

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

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


问题答案:

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

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

--extra-index-url YOUR_URL_HERE

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

--index-url YOUR_URL_HERE

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

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



 类似资料:
  • 投递的是平安产险,10.24一面,今天11.22二面,短信通知是平安银行的复试。由于一面面试官提过他是平安银行那边过来面试的,其他安排他也不清楚,所以这是换了部门还是什么情况? 1.自我介绍 2.讲一下科研项目? 3.讲一下实习做了什么?遇到什么问题吗?还能怎么优化这部分? 4.讲一下ioc,好处? 5.会用什么数据库?一道MySQL数据库查询题,口述一下SQL语句 6.有并发编程经验吗? 7.讲

  • 面试时长:40min 面试内容: * 自我介绍 * 实习内容介绍 * hashmap和hashtable的区别 * java中lambda和面向对象的联系 * JVM了解哪些 * 以前有java项目经验吗 * Linux了解哪些 * 转Java需要学啥? 反问: * 技术面一共三面

  • 发个面筋攒人品 秋招的第一个面试,吓尿了 1、数组常用的方法 2、怎么判断数据类型 3、css怎么让一个元素在页面上消失。。。css真的菜,没答出来 4、路由守卫 5、vue2和vue3的响应式原理 6、vue2对象添加属性怎么实现响应式 7、拷打项目,实现思路 真想不起来了,就面了30min,菜鸡流泪 #24届软开秋招面试经验大赏#

  • 写个面筋积累人品 话说还是太虚了,从华子特种兵回来以后,早上面平安的时候老脸通红(感觉那会烧得要晕过去了) 问的都比较基础 输入url后发生了什么 数组常用方法 盒子模型 接触过哪些前端应用场景 闭包以及使用场景 vue3有什么改进 css预处理器用过啥,有啥好处 怎么防止中间人 原型链 常用git操作 webpack以及其他打包工具用过啥 剩下的想不起来了,反正都是基础八股 面试官人很好,虽然说

  • 获取Geth Frontier工具被称为Geth("to go"古英语的第三人称单数)。考虑到geth由go语言编写,这个名称十分适合。Geth是一个多用途命令行工具,可以操作使用Go实现的完整的Ethereum节点。它提供三个接口:命令行子命令和选项,Json-rpc服务器和交互式控制台。 为了安装Geth,打开一个命令行或终端工具(如果你不确定如何做到这一点,请考虑等待更友好的版本),然后粘贴

  • 写面经攒人品: 前端相关: 1.项目的token验证如何实现? 2.表单提交如何实现? 3.闭包及其内存如何清除(垃圾回收机制)? 4.css中水平垂直居中怎么通过定位实现? 5.如何实现浏览器只浏览一次,就清除掉所有token的方法,用到哪些API? 6.url输入到浏览器后的解析情况? 7.生命周期是啥样的? 7.父组件有两个子组件,他们的挂载顺序是怎样的? 8.组件之间的通讯方式,props