使用 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 執行時。