使用cx\u freez时获取Python堆栈跟踪

2024-05-16 01:33:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用Python编写的数据采集程序,我把它作为一个可执行文件分发给我的合作伙伴(使用cx_freeze),因为我不想在安装Python和安装所有软件依赖项时打扰他们。这项计划一年来一直运作良好。最近,程序开始崩溃(crash,not give a scripting error,即Python虚拟机本身正在崩溃)。所以我想知道是什么图书馆导致了这个问题。这个问题是随机发生的,所以很难系统地找出原因。你知道吗

我学习了faulthandler,我想将它与我的cx\u freeze一起使用,因为我不能确定问题是由于cx\u freeze本身还是其他库引起的。你知道吗

问题:如何生成将使用faulthandler的cx\u freeze可执行文件?你知道吗

我尝试的:

我当前的cx\u冻结设置脚本如下:

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,但没有成功。用import faulthandlerfrom faulthandler import *导入我的cx\u freeze安装文件中的faulthandler没有帮助。你知道吗

请告知。你知道吗

其他信息:我正在使用的依赖项(以防您知道问题的可能原因):PySide、Sympy、Numpy、H5py、PySerial、Matplotlib


Tags: frompyimport程序可执行文件targetmainsetup
1条回答
网友
1楼 · 发布于 2024-05-16 01:33:18

我学会了使用procdump。它可以从here下载。这是一个非常简单的程序,可以记录堆栈跟踪。您可以将其用于:

C:\>procdump -ma -i c:\Dumps

这会将任何程序的堆栈跟踪转储到该文件夹。你知道吗

相关问题 更多 >