如何使用Cython --embed编译Python代码?求最小完整可运行示例
用Cython将Python脚本编译为二进制可执行文件的最小完整示例
我来给你一个步骤清晰、亲测可用的最小示例,帮你用Cython把Python代码转成二进制可执行文件:
1. 准备依赖环境
首先得安装Cython和对应的C编译器:
- 安装Cython:
pip install cython - 安装C编译器:
- Linux:通常预装
gcc,如果没有的话,用包管理器安装(比如sudo apt install gcc) - Windows:安装Visual Studio,选择「C++开发工具」组件
- macOS:安装Xcode命令行工具,运行
xcode-select --install
- Linux:通常预装
2. 编写你的Python脚本
创建一个名为my_script.py的文件,写点简单的测试代码:
def main(): print("Hello from compiled Python! 🎉") # 加个简单计算验证逻辑正常 sum_result = 42 + 58 print(f"42 + 58 = {sum_result}") if __name__ == "__main__": main()
3. 编写编译配置文件
创建setup.py,这是Cython用来编译的配置脚本:
from setuptools import setup from Cython.Build import cythonize setup( name="CompiledPythonApp", # 把Python脚本转成C扩展,指定Python3语法 ext_modules=cythonize("my_script.py", compiler_directives={'language_level': "3"}), # 配置控制台可执行入口,生成的可执行文件会绑定到main函数 entry_points={ 'console_scripts': [ 'my_compiled_app = my_script:main', ], }, )
4. 编译并生成可执行文件
在终端运行以下命令完成编译和安装:
python setup.py install
这个命令会:
- 把
my_script.py转成C代码 - 编译C代码成扩展模块
- 在你的Python环境的可执行目录(Linux/macOS的
bin,Windows的Scripts)生成名为my_compiled_app的二进制可执行文件
5. 运行你的二进制文件
现在直接在终端输入命令就能运行:
my_compiled_app
你会看到输出:
Hello from compiled Python! 🎉 42 + 58 = 100
可选:生成可直接运行的独立二进制(进阶)
如果你想生成不需要依赖Python环境的可执行文件,可以用cython的--embed参数先转成C代码,再用gcc编译:
- 转成C代码:
cython my_script.py --embed -o my_script.c - 用gcc编译(Linux/macOS,替换成你的Python版本,比如3.10):
gcc -Os -I/usr/include/python3.10 -o my_standalone_app my_script.c -lpython3.10 -lpthread -lm -lutil -ldl
运行生成的my_standalone_app即可,不过这种方式需要保证目标机器有对应版本的Python库支持。
内容的提问来源于stack exchange,提问作者safetyduck
相关产品推荐
相关产品推荐

