python将脚本打包成执行文件
本帖最后由 Solowang 于 2024-3-18 10:00 编辑新手刚刚学习,嘿嘿 。慢慢积累总会有结果、
PyInstaller: 是一个第三方库,它能够在 windows\linux\mac os 系统下进行操作将python系统进行打包成执行文件、python程序可以在没有安装python环境下进行运行,
,也可以作为一个独立文件进行传递或管理。支持python 2.7 或 3.3+。
安装PyInstaller :
安装:pip installpyinstaller
更新:pip install --upgradepyinstaller
常用选项:
-h,–help 查看该模块的帮助信息
-F,-onefile 产生单个的可执行文件
-D,–onedir 产生一个目录(包含多个文件)作为可执行程序
-a,–ascii 不包含 Unicode 字符集支持
-d,–debug 产生 debug 版本的可执行文件
-w,–windowed,–noconsolc 指定程序运行时不显示命令行窗口(仅对 Windows 有效)
-c,–nowindowed,–console 指定使用命令行窗口运行程序(仅对 Windows 有效)
-o DIR,–out=DIR 指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件
-p DIR,–path=DIR 设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。
也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径-n NAME,–name=NAME
指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字-i 选择图标
使用简单: 可以在黑窗口WIN+R 输入cmd , 输入pyinstaller -i xxx.py 进行打包执行 补充一点,打包成exe后,别用“os.path.dirname(os.path.abspath(__file__))”之类的方法获取项目所在目录,因为打包后的exe运行时是通过临时运行一个虚拟目录的方式运行的,通过上面的方法获取到的目录是该虚拟目录所在路径,而不是exe所在目录。如果需要用到一些和目录项目的操作(比如处理exe同级命令下的某个txt之类的),建议用“./”等相对目录方式。 momomo0 发表于 2024-3-18 10:42
怎么将整个项目文件夹打包呢
-F 打包成单文件,如果有附带资源可以用 --add-data 或者修改spec文件。看4楼 本帖最后由 土鸡炖蘑菇 于 2024-3-18 10:50 编辑
-i是指定图标,楼主 编译exe命令写了-i还不带 图标文件, 这是干啥。
正确用法: pyinstaller xxx.py
如果需要打包成单文件,就是pyinstaller -F xxx.py
不需要dos窗口出来 就加个-w
如果需要以管理员身份运行可以加 --uac-admin
自定义图标需要提前准备ico图标文件,pyinstaller -i xx.icoxxx.py
也可以多个参数一起使用,例如脚本文件main.py ,图标文件abc.ico ,用QT做了UI 不需要dos界面同时需要管理员身份运行: pyinstaller -F -w --uac-admin -i abc.ico main.py
如果需要打包其他资源文件,可以用--add-data,不过这个我习惯是修改spec文件 pyinstaller x.py --add-data="源地址;目标地址" ,具体可以参考https://blog.csdn.net/u012219045/article/details/114841287 pyinstaller -F -w XX.py用这个就行了 可以可以,学 比如想在mac上打包exe程序的话,有什么方法可以实现嘛~求大佬 typps 发表于 2024-3-18 11:00
比如想在mac上打包exe程序的话,有什么方法可以实现嘛~求大佬
应该可以直接指定打包文件的格式的吧 怎么用,怎么用? 总感觉在哪里看到过呢?