Python学习笔记:pyinstaller打包生成可执行文件exe

一、安装 pyinstaller

pip install pyinstaller

二、使用 pyinstaller 命令

使用示例

  • 相对路径
    在程序目录中,运行命令pyinstaller myscript.py
    则可以在当前目录生成两个文件夹dist和build,exe文件在dist文件夹中。
  • 绝对路径
    在程序目录中,运行命令pyinstaller C:\myscript.py
    则会在当前执行命令的目录生成dist和build文件夹

常用命令参数

参数名描述说明
-D生成one-folder的程序(默认)生成结果是一个目录,各种第三方依赖、资源和exe同时存储在该目录
-F生成one-file的程序生成结果是一个exe文件,所有的第三方依赖、资源和代码均被打包进该exe内
–add-data打包额外资源用法:pyinstaller main.py --add-data=src;dest。windows以;分割,linux以:分割
–add-binary打包额外的代码用法:同–add-data。与–add-data不同的是,用binary添加的文件,pyi会分析它引用的文件并把它们一同添加进来
-p指定额外的import路径,类似于使用PYTHONPATH参见PYTHONPATH
–hidden-import打包额外py库pyi在分析过程中,有些import没有正确分析出来,运行时会报import error,这时可以使用该参数
-c显示命令行窗口与-w相反,默认含有此参数
-w不显示命令行窗口编写GUI程序时使用此参数有用。
-i为main.exe指定图标pyinstaller -i beauty.ico main.py

PyInstaller各参数含义

  • 例子:
    • 打包单独exe文件
      pyinstaller -F T1.py
    • 打包带有文件夹依赖文件
      pyinstaller -D T1.py
    • -i 改变生成程序的icon图标
      pyinstaller -F -i ./my.ico T1.py
    • -n NAME,–name=NAME 设置产生文件的名字(mypy)
      pyinstaller -F -n mypy -i ./my.ico T1.py
    • 多文件打包时
      • 存在包,主文件时:pyinstaller -F main.py -p ./tools
      • 没有包,但是py时:pyinstaller -F main.py -p getexcel.py

补充

  • -c, –console, –nowindowed 使用控制台,无界面(默认)
  • -w, –windowed, –noconsole 使用窗口,无控制台

常见问题

  • 路径问题:使用pyinstaller打包时,如使用rootPath = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))则会把exe打包过程中的路径打包进去,可以使用os.path.dirname(os.path.realpath(sys.argv[0]))获取当前运行py,当前路径

踩过的坑

打包的文件中导入的模块或者包里,不要用检查有没有python保留字,否则打包的exe文件运行报错
pyinstaller打包exe后无法执行错误解决

打包文件时为了好看,自定义了ico图标,且按照命令正确执行了,但是还是显示默认图标,其实时操作系统explorer缓存问题,通过切换大图标、小图标,或者复制到别的目录就能看到自定义的图标了
python3 pyinstaller打包生成exe程序 图标不改变

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值