当您需要将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
暂无评论内容