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文件里了。

     

  • 相关阅读:
    Linux ps命令
    SecureCRT注册机使用方法
    微信消息的处理和应答
    微信公众号开发--开发服务器接入微信服务器
    RESTful架构
    OAuth2.0详解
    HTTP头详解
    Cookie/Session机制详解
    学习tornado:安全
    python tornado框架实现CRUD
  • 原文地址:https://www.cnblogs.com/xqnq2007/p/7775794.html
Copyright © 2011-2022 走看看