gpt4 book ai didi

python - 使用 cx_Freeze 编译 Python C 扩展

转载 作者:可可西里 更新时间:2023-11-01 09:55:12 24 4
gpt4 key购买 nike

我正在尝试从带有 C 扩展模块的 Python 3 包在 Windows 上创建一个 exe。在 distutils 中,您可以创建这样的扩展:

from distutils.core import setup, Extension

module1 = Extension('demo',
sources = ['demo.c'])

setup (name = 'PackageName',
version = '1.0',
description = 'This is a demo package',
ext_modules = [module1])

然后,扩展将使用适当的编译器进行编译,并使用以下命令与其他模块放在一起:

python setup.py build_ext --inplace

cx_Freeze 是一个模块,可以将您的代码与 Python 解释器和相关包一起打包到 exe 文件中。然后,最终用户无需安装 Python 即可使用您的程序。不幸的是,cx_Freeze 没有扩展类,我找不到用 cx_Freeze 处理编译的方法。

我不确定的一个解决方案是首先使用 distutils/setuptools 就地构建扩展,然后使用 cx_Freeze 创建可执行文件。不过,我不想重新发明轮子,所以我想知道在这方面有更多经验的其他人是否有解决方案。

最佳答案

我找到了可行的解决方案。我可以从 distutils 导入扩展,并将其从 cx_Freeze 传递到设置中:

from cx_Freeze import setup
from distutils.core import Extension
...
setup=(...
ext_modules=Extension(...))

这是有道理的,因为 cx_Freeze 是建立在 distutils 之上的。最初,我尝试使用 setuptools.setup,但这不起作用。

关于python - 使用 cx_Freeze 编译 Python C 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18938433/

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