目前,较常用的编译python代码为二进制的工具有2种:
- Cython
- Nuitka
编译代码如下:
Cython
# setup.py
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
ext_modules = [
Extension("database", ["database.py"]),
Extension("main", ["main.py"]),
Extension("modules", ["models.py"]),
Extension("query_utils", ["query_utils.py"]),
Extension("schemas", ["schemas.py"]),
]
setup(name='MoApp',
cmdclass={'build_ext': build_ext},
ext_modules=ext_modules)
Nuitka
nuitka3 --module --no-pyi-file --remove-output xxx.py
两种方法中,Cython
对有些库如pydantic
不太支持,编译后运行会报错。可以选择使用Nuitka
,详细使用方法可以查看官网和Github。