由于存在大量依赖项,我的 python 应用程序的虚拟环境的安装在部署过程中花费了太多时间。为了最大限度地减少时间,我想将驻留在 git 虚拟环境中的依赖项包括在内,以便它们在部署时就已经存在。
主要问题是,由于机器之间的架构差异,需要重建与 C 代码的依赖关系。
有没有办法在我的虚拟环境中重建所有需要编译的依赖项?
车轮格式正是您所需要的
流行的例子是lxml
,在 Linux 上从源代码安装时,下载、编译和安装大约需要 3 分钟。
使用 Wheel 格式并从本地 Wheel 文件进行安装,可在不到一秒的时间内完成 lxml 安装。
有关如何使用它的详细说明,请参阅更正链接 to 详细SO答案如何配置pip https://stackoverflow.com/a/18520729/346478包括。说明如何利用轮子
了解更多信息:
pythonwheels 页面 http://pythonwheels.com/列出已经可用的轮子。
轮子阅读文档 http://wheel.readthedocs.org/en/latest/index.html
使用 pip 构建轮子 http://pip.readthedocs.org/en/latest/reference/pip_wheel.html
一些注意事项:
纯 python 包可以以轮子格式分发,无论目标平台如何(除了可能依赖于 python 版本之外)。
编译后的 python 包应构建在您要安装它们的同一平台上。可能有一些交叉编译选项,但我对此没有真正的经验。
有些人确实认为轮子是“未来的封装格式”,另一些人则声称,它应该由您自己构建并使用您自己的轮子。后一种情况是 lxml 没有作为轮子提供 - 请参阅与轮格式的 lxml 相关的启动板问题 https://bugs.launchpad.net/lxml/+bug/1176147。如果您关心的话,请考虑将自己添加为受影响的人。
一旦你第一次使用轮子,你就会爱上它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)