gpt4 book ai didi

python - 是否可以预编译(预构建/预安装)Python C/C++ 扩展?

转载 作者:行者123 更新时间:2023-11-28 18:37:21 24 4
gpt4 key购买 nike

我正在处理一个大型 Python 项目,其中包含多个 C/C++ 扩展。目前,每次我想让代码在新机器上运行时,我都必须从存储库下载所有内容,然后运行 ​​python setup.py install 几次,每个扩展一次...和这是假设计算机安装了 C 编译器——如果没有,那是另外一两步。

有什么方法可以预编译所有 C 扩展,这样当我将存储库下载到新机器时,一切都可以立即使用,而无需单独安装所有这些子组件?我知道这可能无法在不同平台上正常工作(或根本无法正常工作?),但假设我在 64 位 Windows 8 机器上预编译了一些东西并想将它安装在另一台 64 位 Windows 8 机器上——是那可能吗?如果是这样,我将如何着手去做?

最佳答案

这是可能的。你问的是 Creating Built Distributions .

您可以创建这样一个内置分布:

python setup.py bdist

您甚至可以选择不同的格式,例如:

python setup.py bdist --format=wininst
  • zip zip 文件 (.zip) [默认]
  • wininst 适用于 Windows 的自解压 ZIP 文件
  • msi Microsoft 安装程序

所有这些您都可以使用标准的 distutils 模块来完成。

如果您想使用更现代的方法并使用setuptools,可以构建Platform Wheels对于 Windows:

python setup.py bdist_wheel

您可以做的最后一件事是为所有扩展创建一个 setup.py 文件。即使您只是 安装源代码分发版,您要做的工作也会少得多。使用构建分发,只需执行一个步骤。

关于python - 是否可以预编译(预构建/预安装)Python C/C++ 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31251104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com