python文件打包exe

ゝ一世哀愁。 2023-02-12 11:24 127阅读 0赞

简易操作

anaconda 安装: conda install pyinstaller
也可以用pip:pip install pyinstaller
然后执行pyinstaller -D xx.py

.spec

当执行完成后,会生成一个xx.spec的文件,这个文件可以相当于描述语言,下次直接执行python xx.spec就可以打包了。

高级版:如果要打包资源文件,则修改.spec文件,比如源文件是:

  1. # -*- mode: python ; coding: utf-8 -*-
  2. block_cipher = None
  3. a = Analysis(['index.py'],
  4. pathex=['D:\\workspace\\python\\tools'],
  5. binaries=[],
  6. datas=[],
  7. hiddenimports=[],
  8. hookspath=[],
  9. runtime_hooks=[],
  10. excludes=[],
  11. win_no_prefer_redirects=False,
  12. win_private_assemblies=False,
  13. cipher=block_cipher,
  14. noarchive=False)
  15. pyz = PYZ(a.pure, a.zipped_data,
  16. cipher=block_cipher)
  17. exe = EXE(pyz,
  18. a.scripts,
  19. [],
  20. exclude_binaries=True,
  21. name='index',
  22. debug=False,
  23. bootloader_ignore_signals=False,
  24. strip=False,
  25. upx=True,
  26. console=True )
  27. coll = COLLECT(exe,
  28. a.binaries,
  29. a.zipfiles,
  30. a.datas,
  31. strip=False,
  32. upx=True,
  33. upx_exclude=[],
  34. name='index')

加上add_files配置:

  1. # -*- mode: python ; coding: utf-8 -*-
  2. block_cipher = None
  3. # 此处为增加代码
  4. add_files = [
  5. ("./table/increment", "table/increment")
  6. ]
  7. a = Analysis(['index.py'],
  8. pathex=['D:\\workspace\\python\\tools'],
  9. binaries=[],
  10. datas=add_files, # 此处为修改代码
  11. hiddenimports=[],
  12. hookspath=[],
  13. runtime_hooks=[],
  14. excludes=[],
  15. win_no_prefer_redirects=False,
  16. win_private_assemblies=False,
  17. cipher=block_cipher,
  18. noarchive=False)
  19. pyz = PYZ(a.pure, a.zipped_data,
  20. cipher=block_cipher)
  21. exe = EXE(pyz,
  22. a.scripts,
  23. [],
  24. exclude_binaries=True,
  25. name='index',
  26. debug=False,
  27. bootloader_ignore_signals=False,
  28. strip=False,
  29. upx=True,
  30. console=True )
  31. coll = COLLECT(exe,
  32. a.binaries,
  33. a.zipfiles,
  34. a.datas,
  35. strip=False,
  36. upx=True,
  37. upx_exclude=[],
  38. name='index')

上面是二级文件夹的合并打包方式
然后pyinstaller xx.spec即可

help

-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 pyinstall -i ***.ico **.py 添加图标 ***

pyinstaller带图标打包后图标没变化,解决方法:
1、将打包的exe文件复制到另外的一个地方,有时重启explorer.exe进程也可以修复。
2、更改文件查看方式即 调整为大图标、中图标、小图标等,explorer.exe进程会更新缓存,【注:单纯刷新不解决问题!】

发表评论

表情:
评论列表 (有 0 条评论,127人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python脚本打包exe文件

    把Python脚本和所用到的库打包为exe文件,可以更方便的发布程序,避免使用程序的每个电脑都必须安装Python。 网上有不少相关介绍,但很少见到Python 3.x下打

    相关 Python 项目打包exe文件运行)

    我们开发的脚本一般都会用到一些第三方包,可能别人也需要用到我们的脚本,如果我们将我们的xx.py文件发给他,的,他还需要安装python解释器,甚至还要安装我们用的那些第三方包