使用 pyinstaller 绑定 Cython 程序

从具有入口点的 Cython 程序开始:

def do_stuff():
    cdef int a,b,c
    a = 1
    b = 2
    c = 3
    print("Hello World!")
    print([a,b,c])
    input("Press Enter to continue.")

在同一文件夹中创建 setup.py 文件:

from distutils.core import setup
from Cython.Build import cythonize
setup(
    name = "Hello World",
    ext_modules = cythonize('program.pyx'), 
)

使用 python setup.py build_ext --inplace 运行它将在子文件夹中生成一个 .pyd 库。

之后,使用库创建一个 vanilla Python 脚本(例如,main.py)并将 .pyd 文件放在它旁边:

import program
program.do_stuff()

使用 PyInstaller 绑定它 pyinstaller --onefile "main.py"。这将创建一个子文件夹,其中包含 4 MB +大小的可执行文件,其中包含库和 python 运行时。