zoukankan      html  css  js  c++  java
  • win7 32位用pyinstaller打包Python和相关html文件 成exe

    http://tieba.baidu.com/p/3060401749?traceid=

    安装 pyinstaller

    然后

    第一步你的脚本里面要做相应处理,添加一个函数:
    def resource_path(self,relative):
    if hasattr(sys, "_MEIPASS"):
    return os.path.join(sys._MEIPASS, relative)
    return os.path.join(relative)
    假设你的资源文件为logo.gif,放在data目录下(data与sea.py在同一级目录),你的脚本这样引用资源:
    data_dir = "data"
    self.photo=PhotoImage(file=self.resource_path(os.path.join(data_dir, 'logo.gif')))
    self.Canvas1.create_image(240,35,image =self.photo)


    第二步生成.spec文件,假设你的图标放在sourceimage下面(这个路径是Pyinstaller所在路径),名为sea.ico,你的脚本是sea.py,那么命令如下::
    pyinstaller.py -F -i sourceimagessea.ico D:\Applicationpyinstaller-2.0sea_projectsea.py
    此时会打包一个exe文件,图标已经是打包进去了,不过运行这个exe时会报错,错误提示是找不到logo.gif。


    第三步,也是最关键,最难理解的一步,修改spec文件,打开上面一步生成spec文件:
    # -*- mode: python -*-
    a = Analysis([os.path.join(HOMEPATH,'sea_project\sea.py')],
    pathex=['D:\Application\pyinstaller-2.0'],
    hiddenimports=[],
    hookspath=None)
    pyz = PYZ(a.pure)
    exe = EXE(pyz,
    a.scripts,
    a.binaries,
    a.zipfiles,
    a.datas,
    name=os.path.join('dist', 'sea.exe'),
    debug=False,
    strip=None,
    upx=True,
    console=False , icon='source\images\icon-windowed.ico')


    在a.datas,这一行下面添加 [('\data\logo.gif','D:\Application\pyinstaller-2.0\sea_project\data\logo.gif','DATA')],


    最后一步,重新打包:
    python pyinstaller.py D:Applicationpyinstaller-2.0seasea.spec
    重新生成一个sea.exe文件,这回运行就不会报错了,图标和图片都被打包到一个exe文件里了。

     

  • 相关阅读:
    [BZOJ3530][SDOI2014]数数
    [Luogu3121][USACO15FEB]审查Censoring
    [BZOJ1212][HNOI2004]L语言
    [Luogu3041][USACO12JAN]视频游戏的连击Video Game Combos
    AC自动机总结
    (三)LDAP 新增用户
    (二) LDAP 安装
    (一)LDAP 简介
    (十三)VMware Harbor 身份验证模式
    loj#2541. 「PKUWC2018」猎人杀
  • 原文地址:https://www.cnblogs.com/xqnq2007/p/7775794.html
Copyright © 2011-2022 走看看