我有一个用Python编写的数据采集程序,作为可执行文件发布给我的协作(使用cx_freeze),因为我不想打扰他们安装Python并安装所有软件依赖。该计划现在一直运行良好。最近,程序开始崩溃(崩溃,没有提供脚本错误,即Python虚拟机本身崩溃)。所以我想知道什么库导致了这个问题。这个问题随机发生,因此很难系统地查明原因。使用cx_freeze获取Python堆栈跟踪
我学到了关于faulthandler,我想用它与我的cx_freeze,因为我不能确定问题是由于cx_freeze本身或由于其他库。
问题:如何生成将使用faulthandler
的cx_freeze可执行文件?
我的尝试:
我目前cx_freeze安装脚本如下:
import sys
from cx_Freeze import setup, Executable
from GUI.Meta import *
target = Executable("Main.py",
#base = "Win32GUI",
icon = "GUI\\icon.ico",
compress=True,
targetName="Prog.exe")
setup(
name = "My Software",
version = SOFTWARE_VERSION,
description = "",
executables = [target])
我试图通过Main.py -q -X faulthandler
更换我的可执行部分Main.py
,但没有奏效。在我的cx_freeze安装文件中导入faulthandler
与import faulthandler
或from faulthandler import *
没有帮助。
请指教。
附加信息:我使用的依赖关系(如果你知道这个问题的一个可能的原因):PySide,Sympy,numpy的,H5py,PySerial,Matplotlib
base = None;如果sys.platform ==“win32”: :;; base =“Win32GUI”;从:http://cx-freeze.readthedocs.io/en/latest/distutils.html#distutils-setup-script,如果cmd在windows下:base =“console”(法语名称) – Destrif
@Destrif对不起,错误处理者将如何发挥作用? –
@Destrif不一定是进口问题。实际上导入看起来是错误的,因为'faulthandler'通常在Python命令行中使用'Python Main.py -q -X faulthandler'来调用。没有'错误处理者',没有任何问题。所以我的问题是如何在使用cx_freeze时获取我的程序的堆栈跟踪。 –