Archive for 七月, 2012

py2exe打包python文件中的一些问题

星期二, 七月 3rd, 2012

最近用python加上pyside调用QT来做客户端,界面就用webkit来做,做客户端程序容易多了!
但是从py转成exe很繁琐,500多行的代码,转换成exe后居然有16M。在将py文件打包成在xp系统里能运行的文件。
py2exe&pyside要用到msvcr90,如果用户机器上安装有vs2008runtime 就不用,但是不能要求每个用户vs2008 runtime,所以在打包时应该把这些dll放在exe相同目录下。

setup.py

# coding: utf-8

__author__ = ‘shallwe’

from distutils.core import setup

from glob import glob

import PySide,PySide

import py2exe

myDataFIles = [(“Microsoft.VC90.CRT”), “libs\\Microsoft.VC90.CRT\\*.*”]

setup(

version = “0.1.0”,

name = “Test”,

windows = [{

“script”:”client.pyw”,

“icon_resources”:[(1,”test.ico”)],

“dest_base”:”Test”

}],

zipfile = “Test.dat”,

options = {

“py2exe” : {

“packages”: [‘lxml’, ‘PySide.QtNetwork’, ‘PySide.QtWebKit’, “PySide.QtGui”],

“compressed”: 1,

“optimize”: 2,

“dll_excludes”:[“w9xpopen.exe”],

“bundle_files”: 1

},

},

data_files = [(“Microsoft.VC90.CRT”, glob(“libs\\Microsoft.VC90.CRT\\*.*”))]

 

打包语句: python setup.py py2exe

 

重点: 1. data_files里加上msvcr90相关的dll和文件

文件夹 Microsoft.VC90.CRT:

文件列表 Microsoft.VC90.CRT.manifest msvcm90.dll  msvcp90.dll msvcr90.dll