python:如何重建需要编译的依赖项

python:如何重建需要编译的依赖项,python,pip,Python,Pip,由于存在大量依赖关系,在部署过程中安装python应用程序的虚拟环境花费了太多时间。为了缩短时间,我想在git中包含驻留在虚拟环境中的依赖项,以便它们在部署时已经存在 这方面的主要问题是,由于机器之间的架构差异,需要重建与C代码的依赖关系 有没有办法在我的虚拟环境中重建所有需要编译的依赖项?wheel格式是您需要的 流行的例子是lxml,在Linux上从源代码安装时,下载、编译和安装大约需要3分钟 使用控制盘格式并从本地控制盘文件安装lxml,只需几秒钟即可安装 有关如何使用它的详细说明,请参见

由于存在大量依赖关系,在部署过程中安装python应用程序的虚拟环境花费了太多时间。为了缩短时间,我想在git中包含驻留在虚拟环境中的依赖项,以便它们在部署时已经存在

这方面的主要问题是,由于机器之间的架构差异,需要重建与C代码的依赖关系

有没有办法在我的虚拟环境中重建所有需要编译的依赖项?

wheel格式是您需要的 流行的例子是
lxml
,在Linux上从源代码安装时,下载、编译和安装大约需要3分钟

使用控制盘格式并从本地控制盘文件安装lxml,只需几秒钟即可安装

有关如何使用它的详细说明,请参见已更正的链接,包括如何利用车轮的说明

有关更多信息:

  • 列出已可用的控制盘

一些注意事项:

  • 纯python包可以以轮子格式分发,而不考虑目标平台(除了可能依赖于python版本)

  • 编译后的python包应构建在您将要安装它们的同一平台上。可能有一些交叉编译选项,但我没有这方面的实际经验

  • 有些人会考虑“未来的包装形式”的车轮,其他人认为,它应该是在你自己的一边建造,并使用你自己的轮子。后一种情况是lxml没有作为轮子提供-请参阅。如果你在乎的话,考虑把自己加入到受影响的人中。


一旦你第一次使用轮子,你就会爱上它。

谢谢你提供的信息,但这似乎并不能解决问题。一个.whl文件已经编译好了,对吗?因此,我无法将其直接分发到具有不同体系结构的其他计算机。wheel允许针对不同平台进行不同的分发,平台将成为wheel文件名的一部分,请参阅。由于有多个平台,编译必须在某个地方进行。您可以尝试交叉编译,或者在各自的平台上构建控制盘。然后,所有受支持平台的所有控制盘都可以存储在您的repo中,并用于安装在特定平台上,在该平台上,控制盘将选择合适的控制盘平台变体。我将控制盘格式与我们的CI服务器集成,这与我们的生产机器的体系结构相同。虽然这不是问题的答案,但安装时间要快得多。非常感谢。