美文网首页
pyinstaller打包exe

pyinstaller打包exe

作者: 蕴重Liu | 来源:发表于2019-12-26 10:06 被阅读0次

安装命令,设置超时

pip --default-timeout=300 install PyQtWebEngine
pip --default-timeout=100 install -U pyinstaller

相关参数

-F, –onefile 打包一个单个文件,如果你的代码都写在一个.py文件的话,可以用这个,如果是多个.py文件就别用
-D, –onedir 打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码,我个人比较推荐这样,代码易于维护
-K, –tk 在部署时包含 TCL/TK
-a, –ascii 不包含编码 . 在支持 Unicode的 python 版本上默认包含所有的编码 .
-d, –debug 产生 debug 版本的可执行文件
-w,–windowed,–noconsole 使用 Windows 子系统执行 . 当程序启动的时候不会打开命令行 ( 只对 Windows 有效 )
-c,–nowindowed,–console 使用控制台子系统执行 ( 默认 )( 只对 Windows 有效 ) pyinstaller -c xxxx.py pyinstaller xxxx.py --console
-s,–strip 可执行文件和共享库将 run through strip. 注意 Cygwin的 strip 往往使普通的 win32 Dll 无法使用 .
-X, –upx 如果有 UPX 安装 ( 执行 Configure.py 时检测 ), 会压缩执行文件 (Windows 系统中的 DLL 也会 )( 参见 note)
-o DIR, –out=DIR 指定 spec 文件的生成目录 , 如果没有指定 , 而且当前目录是 PyInstaller 的根目录 , 会自动创建一个用于输出 (spec 和生成的可执行文件 ) 的目录 . 如果没有指定 , 而当前目录不是 PyInstaller 的根目录 , 则会输出到当前的目录下 .
-p DIR, –path=DIR 设置导入路径 ( 和使用 PYTHONPATH 效果相似 ). 可以用路径分割符 (Windows 使用分号 ,Linux 使用冒号 ) 分割 , 指定多个目录 . 也可以使用多个 -p 参数来设置多个导入路径,让pyinstaller自己去找程序需要的资源
–icon=<FILE.ICO>
将 file.ico 添加为可执行文件的资源 ( 只对 Windows 系统有效 ),改变程序的图标 pyinstaller - i ico路径 xxxxx.py
–icon=<FILE.EXE,N> 将 file.exe 的第 n 个图标添加为可执行文件的资源 ( 只对 Windows 系统有效 )
-v FILE, –version=FILE 将 verfile 作为可执行文件的版本资源 ( 只对 Windows 系统有效 )
-n NAME, –name=NAME 可选的项目 ( 产生的 spec 的 ) 名字 . 如果省略 , 第一个脚本的主文件名将作为 spec 的名字

 pyinstaller -F -i D:\favicon.ico check_view.py

打包图片资源文件

spec文件就是一份告诉pyinstaller如何打包的配置文件。可以通过pyi-makespec demo.py来生成demo.spec文件.

# -*- mode: python -*-

block_cipher = None

resources = (("inspurer.db", "."), ("dlib_face_recognition_resnet_model_v1.dat", "."),
 ("shape_predictor_68_face_landmarks.dat", "."), ("close_logcat.png", ".")
 , ("open_logcat.png", "."), ("finish_register.png", "."), ("new_register.png", ".")
 , ("start_punchcard.png", "."), ("end_puncard.png", "."), ("index.png", "."))

a = Analysis(['workAttendanceSystem.py'],
             pathex=['C:\\Users\\lenovo\\Desktop\\test\\python'],
             binaries=[],
             datas=resources,
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          [],
          exclude_binaries=True,
          name='workAttendanceSystem',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=True )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               name='workAttendanceSystem')

除了resources配置是我添加修改之外,其余全是自动生成,这个配置是用来添加资源文件的。
pathex是工程的根目录。

关于浏览器内核等知识:
https://blog.csdn.net/milado_nju/article/details/7216067

相关文章

网友评论

      本文标题:pyinstaller打包exe

      本文链接:https://www.haomeiwen.com/subject/lalkoctx.html