我有一个用python编写的应用程序,它使用pygtk来构建GUI,还包括一些用于窗口构建的glade文件。在
我的问题是,当我从cmd运行应用程序时,它运行得很好,但是当我用py2exe创建一个exe文件时,应用程序不会启动,但是它会创建一个空的日志文件,我正在应用程序中为日志写这些文件。在
我的设置.py看起来像:
from distutils.core import setup
import os
import pygtk
import py2exe
setup(
name = 'ABC',
description = 'blah blah blah',
author = 'XYZ',
version = '0.1',
windows = [
{
'script': 'filename.py',
'icon_resources': [(1, "logo.ico")],
}
],
options = {
'py2exe': {
'packages':'encodings',
'includes': 'cairo, pango, pangocairo, atk, gobject,gio',
}
},
data_files=[
'logo.png', 'bg.png', 'completed.png', 'down.png','up.png',
'processing.gif', 'cygcrypto-0.9.8.dll', 'cyggcc_s-1.dll',
'cygiconv-2.dll', 'cygpopt-0.dll', 'cygssp-0.dll', 'cygwin1.dll',
'cygz.dll', 'prog.exe','prog2.exe', 'prog3.exe',
'Login.glade', 'settings_lib.glade',
'Microsoft.VC90.CRT.manifest', 'msvcm90.dll','etc.zip',
'lib.zip', 'msvcp90.dll', 'msvcr90.dll', 'share.zip'
])
有什么问题吗?在
在使用py2exe和py2app等工具时,我也有过类似的问题。在
IIRC,很多时候这是因为当双击.exe时,Python进程的工作目录非常不同。您可能需要在Python程序的启动中添加一些代码,该程序记录
os.getcwd()
的值另一件棘手的事情是,必须确保py2exe捆绑在程序使用的所有Python模块中。从命令行运行时,您使用的Python包含所有这些模块。双击.exe时,您使用的Python与您在
setup.py
中明确列出的模块捆绑在可执行文件中,很容易遗漏一个。要找到这一点,您可以在导入周围放置try/except子句,然后将ImportError
异常记录到一个文件中。在相关问题 更多 >
编程相关推荐