py2exe编译的.exe无法启动

py2exe compiled .exe won't start

我用 py2exe 编译了我的原型应用程序以检查其作为 exe 的功能,并且 运行 出现 0 个错误,直到我开始它。什么都没发生。一个进程以我的应用程序名称开始,它思考了几秒钟,然后什么也没有。不生成日志文件。当 运行 在 python 环境中时,该应用程序运行良好,但在编译的 exe 中则不然。我在下面给出了我的设置代码。有任何想法吗? :

from distutils.core import setup
import py2exe, sys, os
import matplotlib
import FileDialog
import dateutil

sys.argv.append('py2exe')

setup( windows=['ATLAS.pyw'], data_files=matplotlib.get_py2exe_datafiles(),
    options = {"py2exe": {
            "includes": "decimal, datetime",
            "packages": ["FileDialog", "dateutil"],
            'bundle_files': 2, 
            'compressed': True}
        },
    zipfile = None
)

应用程序中使用的挂钩:

from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.backend_bases import key_press_handler
from pandas.sandbox.qtpandas import DataFrameWidget
from matplotlib.widgets import LassoSelector
from tkFileDialog import askopenfilename
from matplotlib.figure import Figure
import matplotlib.image as mpimg
from PySide import QtGui, QtCore
from matplotlib.path import Path
import pandas.io.sql as psql
from numpy import nonzero
import tkMessageBox as mb
from pylab import *
import pyodbc
import sys
import ttk

已解决:

因此,使用快速手指(并使用带有 --debug 选项的 PyInstaller 对其进行编译)我截屏了包含 Traceback 的快速关闭控制台 window:

WindowsError: [Error 3] The system cannot find the path specified: 'C:\path\dateutil\zoneinfo/*.*'

zoneinfo 文件保存在 pytz 而不是 dateutil 中。快速重命名解决了问题。

唯一的问题是,如果您想使用 -F--onefile 进行编译,由于初始命名约定不正确,它将无法工作。不过不太确定如何解决这个问题。