利用Nuitka打包py文件

利用Nuitka打包py文件

一、运行环境:

  1. C 编译器。你需要一个支持 C11 或 C++03 的编译器(Windows 上的 MinGW64 C11 编译器,必须基于 gcc 11.2 或更高。如果没有找到可用的 C 编译器,它将被自动下载,这是推荐的安装方式,因为 Nuitka 也会为你升级它)

编译器地址:https://github.com/brechtsanders/winlibs_mingw/releases/download/11.2.0-14.0.0-9.0.0-msvcrt-r7/winlibs-x86_64-posix-seh-gcc-11.2.0-llvm-14.0.0-mingw-w64msvcrt-9.0.0-r7.zip

C 高速编译器缓存程序ccache :https://github.com/ccache/ccache/releases/download/v4.6/ccache-4.6-windows-32.zip

        2.Python: Version 2.6, 2.7 or 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10

如果提示需要安装'ordered-set' or 'orderset' PyPI packages for best Python compile time performance.则安装以提高编译性能。

二、案例

1、打包成一个单独的文件夹

E:\PycharmProjects\base_notebook> python -m nuitka main.py --standalone --enable-plugin=pyside6

 # --standalone 单独成一个文件夹,生成main.dist(main.py的文件名)  
# --enable-plugin=pyside6 支持pyside6插件,不加默认是QT插件。

打包成exe后,会把所有的依赖包,及数据库打包进去,但是打包进去的数据库为空库。同时如果有附件或图片的文件夹,同时也要复制到打包的文件夹中。

2、打包成一个单独的文件夹,并将附件及数据库文件一起打包

E:\PycharmProjects\base_notebook> python -m nuitka main.py --standalone --enable-plugin=pyside6 --include-data-files=note.db=note.db --include-data-dir=pictures=pictures

--standalone 单独成一个文件夹,生成main.dist(main.py的文件名)

--enable-plugin=pyside6 支持pyside6插件,不加默认是QT插件。

--include-data-files=note.db=note.db 包含的数据文件,格式:源目录文件=打包目录目录文件

--include-data-dir=pictures=pictures 包含的数据目录,格式:源目录=打包后目录

3、打包到指定的目录,并删除打包过程生成的临时编译目录

E:\PycharmProjects\base_notebook> python -m nuitka main.py --standalone --enable-plugin=pyside6 --include-data-files=note.db=note.db --include-data-dir=pictures=pictures --windows-icon-from-ico=img\editor.ico --windows-disable-console --output=d:\notebook --remove-output

--standalone 单独成一个文件夹,生成main.dist(main.py的文件名)

--enable-plugin=pyside6 支持pyside6插件,不加默认是QT插件。

--include-data-files=note.db=note.db 包含的数据文件,格式:源目录文件=打包目录目录文件

--include-data-dir=pictures=pictures 包含的数据目录,格式:源目录=打包后目录

--windows-icon-from-ico=img\editor.ico 打包的exe使用图标

--windows-disable-console 关闭控制台窗口,不加该参数,默认在运行程序的时候会显示一个黑窗。

--output=d:\notebook 指定中间和最终输出文件应该放在哪里。DIRECTORY将被C文件、目标文件等填充。默认为当前目录

--remove-output 生成模块或exe文件后,删除生成编译目录。默认不删除。

你可能感兴趣的:(PySide6,python,开发语言)