Python 使用py2exe创建的可执行文件中存在问题

Python 使用py2exe创建的可执行文件中存在问题,python,pygtk,Python,Pygtk,我有一个用python编写的应用程序,它使用pygtk构建GUI,还包括一些用于构建窗口的glade文件 我的问题是,当我从cmd运行应用程序时,它工作正常,但当我使用py2exe创建一个exe时,应用程序不会启动,但它会创建一个空日志文件,我正在应用程序中为日志编写该文件 my setup.py看起来像: from distutils.core import setup import os import pygtk import py2exe setup( name = 'ABC', des

我有一个用python编写的应用程序,它使用pygtk构建GUI,还包括一些用于构建窗口的glade文件

我的问题是,当我从cmd运行应用程序时,它工作正常,但当我使用py2exe创建一个exe时,应用程序不会启动,但它会创建一个空日志文件,我正在应用程序中为日志编写该文件

my setup.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()的值。


另一件棘手的事情是,您必须确保程序正在使用的所有Python模块中都有py2exe捆绑包。从命令行运行时,您使用的是包含所有这些模块的Python。双击.exe时,您使用的是绑定到可执行文件中的Python,以及您在
setup.py
中明确列出的模块——很容易错过一个。要找到这一点,您可以在导入周围放置try/except子句,然后将
ImportError
异常记录到文件中。

您是否尝试过
cx\u freeze
?我曾尝试使用
py2exe
,但它根本不适合我(我正在制作一个PyQt4应用程序)
cx_freeze
确实有效,但我仍然不知道为什么
py2exe
没有…谢谢Marc,收到了问题,实际上问题在于导入glade模块。我正试图解决同样的问题,有什么建议我应该怎么做来解决这个问题?