2013-10-24 42 views
0

我使用这个设置脚本编译一个PY文件exe文件。蟒蛇py2exe编译2个PY文件一次到两个独立的exe文件

# -*- coding: utf-8 -*- 
from distutils.core import setup 
import py2exe 
import sys 

import os 
dataFiles = [] 

sampleDir = r'.\\lang' 
for root, dirs, files in os.walk(sampleDir): 
    sampleList = [] 
    if files: 
     for filename in files: 
      #ignore SVN dirs 
      if ".svn" not in root: 
       sampleList.append(os.path.join(root, filename)) 
     if sampleList: 
      dataFiles.append((root, sampleList))            

class Target: 
     def __init__(self, **kw): 
      self.__dict__.update(kw) 
      self.version = "1.5.5.000" 
      self.company_name = "company" 
      self.copyright = 'Copyright (c) ' 
target = Target(
     script = "script.py", 
     icon_resources=[(1, 'ico.ico')], 
     ) 




setup(
    name = 'PROGNAME', 
    author='me', 
    author_email='[email protected]', 
    description = 'desc', 

    windows = [target], 

    options = { 
        'py2exe': { 
         'packages': 'encodings, kinterbasdb', 
         'includes': 'cairo, pango, pangocairo, atk, gobject, gio, glib, gtk',    
        } 
       }, 

    data_files=dataFiles, 
) 

但现在我有2 PY文件,我想在一次编译,但每个文件应该有:

  • 不同的程序名(当我右键点击属性程序)
  • 不同的文件名
  • 不同的文件版本
  • 不同的文件图标

应该如何我在安装脚本改变为能够同时做到这一点?

回答

1

我发现了如何做到这一点!希望这有助于每个人:

# -*- coding: utf-8 -*- 
from distutils.core import setup 
import py2exe 
import sys  

import os 
dataFiles = [] 

sampleDir = r'.\\lang' 
for root, dirs, files in os.walk(sampleDir): 
    sampleList = [] 
    if files: 
     for filename in files: 
      #ignore SVN dirs 
      if ".svn" not in root: 
       sampleList.append(os.path.join(root, filename)) 
     if sampleList: 
      dataFiles.append((root, sampleList))             

class Target: 
     def __init__(self, **kw): 
      self.__dict__.update(kw) 

target = Target(
     script = "script.py", 
     icon_resources=[(1, 'ico.ico')], 
     version = "1.5.5.000", 
     company_name = "company", 
     copyright = 'Copyright (c) ', 
     name = 'PROGNAME', 
     ) 

target2 = Target(
     script = "script2.py", 
     icon_resources=[(1, 'ico.ico')], 
     version = "1.0.0.000", 
     company_name = "company", 
     copyright = 'Copyright (c) ', 
     name = 'SECOND PROGNAME', 
     ) 


setup(
    author='me', 
    author_email='[email protected]', 
    description = 'desc', 

    windows = [target, target2], 

    options = { 
        'py2exe': { 
         'packages': 'encodings, kinterbasdb', 
         'includes': 'cairo, pango, pangocairo, atk, gobject, gio, glib, gtk',    
        } 
       }, 

    data_files=dataFiles, 
) 
0

有大量的冗余代码,你应该考虑接受参数执行任务写入功能。这样,你就可以控制“不同的程序名(当我用鼠标右键单击程序属性) - 不同的文件名 - 不同的文件版本 - 不同的文件图标”通过将其作为输入参数的功能。

+0

以及它如何帮助编译两个单独的exe文件? – peter