wxPython打包相关

来源:互联网 发布:centos 伪静态 编辑:程序博客网 时间:2024/06/11 14:47

(一)setup.py

1、向EXE添加图标

2、向EXE添加MANIFEST

3、忽略MSVCP90.DLL(python2.7需VC2008运行时库)

 

from distutils.core import setupimport py2exeimport sysMANIFEST_TEMPLATE = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">  <assemblyIdentity    version="5.0.0.0"    processorArchitecture="x86"    name="%(prog)s"    type="win32"  />  <description>%(prog)s</description>  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">    <security>      <requestedPrivileges>        <requestedExecutionLevel            level="asInvoker"            uiAccess="false">        </requestedExecutionLevel>      </requestedPrivileges>    </security>  </trustInfo>  <dependency>    <dependentAssembly>      <assemblyIdentity            type="win32"            name="Microsoft.VC90.CRT"            version="9.0.21022.8"            processorArchitecture="x86"            publicKeyToken="1fc8b3b9a1e18e3b">      </assemblyIdentity>    </dependentAssembly>  </dependency>  <dependency>    <dependentAssembly>        <assemblyIdentity            type="win32"            name="Microsoft.Windows.Common-Controls"            version="6.0.0.0"            processorArchitecture="X86"            publicKeyToken="6595b64144ccf1df"            language="*"        />    </dependentAssembly>  </dependency></assembly>"""APP_NAME = 'Souyichen'setup(    windows=[{        'script':'souyichen.py',        'icon_resources': [(1, 'mail.ico')],        'other_resources' : [(24, 1, MANIFEST_TEMPLATE % dict(prog=APP_NAME))]            }],    options={        'py2exe': {            'packages': ['lxml', 'pony', 'gzip'],            'dll_excludes':['MSVCP90.dll'],            'optimize': 1,            'bundle_files': 1, # Change to 1 if single execute needed 3 full            'compressed': False,        }    },    zipfile=None)


(二)设置主窗口图标

class MainFrame(wx.Frame):    def __init__(self):        wx.Frame.__init__(self, None, title=u'', style=wx.DEFAULT_FRAME_STYLE)        self.SetBackgroundColour(wx.NullColour)        self.InitIcon()            def InitIcon(self):        if sys.argv[0][-4:] == '.exe':            self.SetIcon(wx.Icon(sys.argv[0], wx.BITMAP_TYPE_ICO))        elif os.path.exists('mail.ico'):            self.SetIcon(wx.Icon('mail.ico', wx.BITMAP_TYPE_ICO))


 

原创粉丝点击