栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python Pmw和cx_Freeze?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python Pmw和cx_Freeze?

不幸的是,原始文件的制表符和空格存在一些问题(只需查看中的

while
缩进即可
expandlinks
)。

我固定的压痕问题,改变

regsub.gsub
re.sub
和消除了
string
进口,使用字符串类型的方法。

之后,脚本运行完美:

   Pmw.py has been created.   Before running freeze, also copy the following file(s):   C:UsersjoaquinDesktopPmw.1.3.2srcPmwPmw_1_3libPmwBlt.py   C:UsersjoaquinDesktopPmw.1.3.2srcPmwPmw_1_3libPmwColor.py

在这里,您有更正的脚本:

#!/usr/bin/env python# Helper script when freezing Pmw applications.  It concatenates all# Pmw megawidget files into a single file, 'Pmw.py', in the current# directory.  The script must be called with one argument, being the# path to the 'lib' directory of the required version of Pmw.# To freeze a Pmw application, you will also need to copy the# following files to the application directory before freezing:##    PmwBlt.py PmwColor.pyimport osimport reimport sys# The order of these files is significant.  Files which reference# other files must appear later.  Files may be deleted if they are not# used.files = [    'Dialog', 'TimeFuncs', 'Balloon', 'ButtonBox', 'EntryField',    'Group', 'LabeledWidget', 'MainMenuBar', 'MenuBar', 'MessageBar',    'MessageDialog', 'NoteBook', 'OptionMenu', 'PanedWidget', 'promptDialog',    'RadioSelect', 'ScrolledCanvas', 'ScrolledField', 'Scrolledframe',    'ScrolledListBox', 'ScrolledText', 'HistoryText', 'SelectionDialog',    'TextDialog', 'TimeCounter', 'aboutDialog', 'ComboBox', 'ComboBoxDialog',    'Counter', 'CounterDialog',]# Set this to 0 if you do not use any of the Pmw.Color functions:needColor = 1# Set this to 0 if you do not use any of the Pmw.Blt functions:needBlt = 1def expandlinks(path):    if not os.path.isabs(path):        path = os.path.join(os.getcwd(), path)    while 1:        if not os.path.islink(path): break        dir = os.path.dirname(path)        path = os.path.join(dir, os.readlink(path))    return pathdef mungeFile(file):    # Read the file and modify it so that it can be bundled with the    # other Pmw files.    file = 'Pmw' + file + '.py'    text = open(os.path.join(srcdir, file)).read()    text = re.sub('import Pmw>', '', text)    text = re.sub('INITOPT = Pmw.INITOPT', '', text)    text = re.sub('<Pmw.', '', text)    text = 'n' + ('#' * 70) + 'n' + '### File: ' + file + 'n' + text    return text# Work out which version is being bundled.file = sys.argv[0]file = os.path.normpath(file)file = expandlinks(file)dir = os.path.dirname(file)dir = expandlinks(dir)dir = os.path.dirname(dir)dir = expandlinks(dir)dir = os.path.basename(dir)version = dir[4:].replace('_', '.')# Code to import the Color module.colorCode = """import PmwColorColor = PmwColordel PmwColor"""# Code to import the Blt module.bltCode = """import PmwBltBlt = PmwBltdel PmwBlt"""# Code used when not linking with PmwBlt.py.ignoreBltCode = """_bltimported = 1_bltbusyOK = 0"""# Code to define the functions normally supplied by the dynamic loader.extraCode = """### Loader functions:_VERSION = '%s'def setversion(version):    if version != _VERSION:        raise ValueError, 'Dynamic versioning not available'def setalphaversions(*alpha_versions):    if alpha_versions != ():        raise ValueError, 'Dynamic versioning not available'def version(alpha = 0):    if alpha:        return ()    else:        return _VERSIondef installedversions(alpha = 0):    if alpha:        return ()    else:        return (_VERSION,)"""if '-noblt' in sys.argv:    sys.argv.remove('-noblt')    needBlt = 0if '-nocolor' in sys.argv:    sys.argv.remove('-nocolor')    needColor = 0if len(sys.argv) != 2:    print 'usage: bundlepmw.py [-noblt] [-nocolor] /path/to/Pmw/Pmw_X_X_X/lib'    sys.exit()srcdir = sys.argv[1]if os.path.exists('Pmw.py'):    print 'Pmw.py already exists. Remove it and try again.'    sys.exit()outfile = open('Pmw.py', 'w')if needColor:    outfile.write(colorCode)if needBlt:    outfile.write(bltCode)outfile.write(extraCode % version)# Specially handle Pmwbase.py file:text = mungeFile('base')text = re.sub('import PmwLogicalFont', '', text)text = re.sub('PmwLogicalFont._font_initialise', '_font_initialise', text)outfile.write(text)if not needBlt:    outfile.write(ignoreBltCode)files.append('LogicalFont')for file in files:    text = mungeFile(file)    outfile.write(text)print ''print '   Pmw.py has been created.'if needColor or needBlt:    print '   Before running freeze, also copy the following file(s):'    if needBlt:        print '   ' + os.path.join(srcdir, 'PmwBlt.py')    if needColor:        print '   ' + os.path.join(srcdir, 'PmwColor.py')


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/625587.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号