我有一个用Python编写的数据采集程序,我将其作为可执行文件分发给我的协作(使用cx_freeze),因为我不想打扰他们安装Python并安装所有软件依赖项。该计划一直运作良好一年。最近,程序开始崩溃(崩溃,没有给出脚本错误,即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
替换我的可执行部分Main.py -q -X faulthandler
,但这不起作用。使用faulthandler
或import faulthandler
在我的cx_freeze设置文件中导入from faulthandler import *
无效。
请告知。
其他信息:我正在使用的依赖项(如果您可能知道问题的可能原因):PySide,Sympy,Numpy,H5py,PySerial,Matplotlib
答案 0 :(得分:0)
我了解到我可以使用procdump
。它可以从here下载。它是一个非常简单的程序,可以记录堆栈跟踪。您可以将其用于:
C:\>procdump -ma -i c:\Dumps
这将转储崩溃到该文件夹的任何程序的堆栈跟踪。