免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4605 | 回复: 2
打印 上一主题 下一主题

请教一个py2exe打包的问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-15 17:06 |只看该作者 |倒序浏览
我想把我写的一个小程序用py2exe打包成一个exe文件在windows下运行,我希望程序运行的时候,左上角也有一个图标,所以我做了一个32*32的.png图标文件,请问我如何在打包的时候,把这个文件也打包到exe中?

我的程序也有一个ico的图标,这个在打包的时候,已经打进去了,我写的setup.py如下:


  1. from distutils.core import setup
  2. import py2exe

  3. setup(
  4.     version = "0.1",
  5.     description = "pro",
  6.     name = r"pro",
  7.     options = {"py2exe": {"compressed": 1,
  8.                           "optimize": 2,
  9.                           "ascii": 0,
  10.                           "bundle_files": 1}},
  11.     zipfile = None,
  12.     # targets to build
  13.     windows = [{"script": r"pro.pyw","icon_resources":[(1,r"icon.ico")]} ],
  14.     )
复制代码
如果我加一句:
,data_files = [("",["icon.png"])],

那目录下就多一个icon.png的文件,有办法把这个文件也打进去吗?

论坛徽章:
0
2 [报告]
发表于 2010-07-15 17:50 |只看该作者
解决了。
首先做一个32*32的ico图标文件,setup文件不用变,修改源程序,增加如下内容:

  1. import wx, win32api

  2. class MyFrame(wx.Frame):
  3.     def __init__(self, parent=None):
  4.         wx.Frame.__init__(self, parent, wx.ID_ANY)

  5.         # set window icon
  6.         exeName = win32api.GetModuleFileName(win32api.GetModuleHandle(None))
  7.         icon = wx.Icon(exeName, wx.BITMAP_TYPE_ICO)
  8.         self.SetIcon(icon)
复制代码
这样就可以了。

论坛徽章:
0
3 [报告]
发表于 2010-07-22 16:31 |只看该作者
现在又碰到一个新问题,用py2exe打包的程序,在有的windows上可以运行,在有的windows上不能运行。
我查了一下,说是缺少vc++2008的运行库,我按照http://www.py2exe.org/index.cgi/Tutorial#Step52
中提供的方法,加上了msvcr90.dll,可是打包后,还是不能运行。

请问怎么做才能把所有需要的文件最终打包成一个exe文件,绿色版的,直接运行?
我用的python版本是2.6.2

另外,在目标主机上安装python2.6.5倒是也能解决这个问题,可是我不能要求所有要用我这个小程序的人都装python吧?如果这样,那不打包也照样运行啊。

谁能给个解决方法?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP