我正在尝试从带有 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 创建可执行文件。不过,我不想重新发明轮子,所以我想知道在这方面有更多经验的其他人是否有解决方案。