Cython编译python脚本成exe

Cython 可以把python代码翻译成c\c++源代码,然后就可以用cl,gcc等编译器编译成可执行文件。经过我的实际测试,支持tkinter,可以生成带图形界面的程序,可以去掉黑框。

cython -3 --embed -o run.c run.py
cl /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -I"C:\Program Files\Python37\include" /Tc run.c /DWIN32
link run.obj /SUBSYSTEM:CONSOLE /MACHINE:X64 /LIBPATH:"C:\Program Files\Python37\libs"
link run.obj /SUBSYSTEM:WINDOWS /MACHINE:X64 /LIBPATH:"C:\Program Files\Python37\libs" /ENTRY:"wmainCRTStartup"

生成的可执行文件任然依赖于python的运行时环境(如python.dll, 程序使用到的标准模块pyd等,而且必须是同一版本的运行时)。Cython不能把所有依赖打包成一个包,如果需要将所有依赖打包并复制到未安装python的电脑上运行,则比较麻烦。

另一个打包工具nuikta,可以把所有依赖打包到一个文件夹里,但是不能生成单独的exe。Nuikta的使用方法更简单。

发表评论

电子邮件地址不会被公开。 必填项已用*标注