Python工程打包成exe的两种方式

Python工程打包成exe的两种方式

当您需要将Python项目打包成独立的可执行文件以方便分发给未安装Python环境的用户时,PyInstaller和Nuitka是两种流行且功能强大的工具。这两者各优势,适合不同的打包需求。以下是它们主要参数的含义及使用案例,整理成易于理解的Markdown格式。

使用PyInstaller

PyInstaller是一个流行的工具,能够将Python程序打包成独立的可执行文件。

参数及其作用

打包类型

  • -F, --onefile:创建一个单独的可执行文件。
  • -D, --onedir:创建一个包含多个文件的目录(默认选项)。
  • -w, --windowed:对于GUI应用,不显示控制台窗口。
  • -c, --console:对于命令行应用,显示控制台窗口(默认选项)。
  • --service:创建Windows服务程序。

可执行文件名和图标

  • -n, --name:指定可执行文件的名称。
  • -i, --icon:指定可执行文件的图标。

资源文件和数据文件

  • --add-data:添加非Python文件(格式:<SRC;DEST or SRC:DEST>)。
  • --hidden-import:添加PyInstaller可能未检测到的隐藏导入。
  • --add-binary:添加二进制文件。

优化和压缩

  • --upx:如果已安装UPX,使用它来压缩可执行文件。
  • --noupx:禁用UPX压缩。

清理和调试

  • --clean:开始前清理缓存和临时文件。
  • --log-level:设置日志级别(例如:DEBUG, INFO)。

加密

尽管PyInstaller本身不提供直接的加密功能,但您可以通过修改spec文件来提高安全性,如下所示:

# 示例:在spec文件中添加运行时钩子和启用加密
a = Analysis(['your_script.py'],
             pathex=['path_to_your_script'],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=['hooks/hook-encodings.py'],
             cipher=1)

使用--key参数进行加密:

pyinstaller --key your_secret_key your_script.py

使用案例

pyinstaller -F myscript.py --icon=icon.ico --add-data 'src;dest' --hidden-import=module.name

使用Nuitka

Nuitka将Python代码转换为C语言,然后编译成可执行文件,适用于需要更高安全性和性能的场合。

参数及其作用

  • -o, --output-dir:指定输出目录。
  • --standalone:创建包含所有依赖的独立可执行文件。
  • --recurse-all:递归包含所有使用到的模块。
  • --windows-icon:为Windows可执行文件指定图标。

使用案例

nuitka --standalone --output-dir=/path/to/output myscript.py

工作中根据自己的需求来选择,一般情况我这里是使用pyinstaller,这个还是比较方便的

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容