相关疑难解决方法(0)

显示正在运行的Python应用程序的堆栈跟踪

我有这个Python应用程序不时被卡住,我无法找到在哪里.

有没有办法告诉Python解释器向您显示正在运行的确切代码?

某种即时堆栈跟踪?

相关问题:

python debugging stack-trace traceback

330
推荐指数
16
解决办法
12万
查看次数

Python脚本在不同的行停止并且不抛出异常

我有一个 Python 脚本,它对 Word .docx 文件执行大量解析工作(并且它对所有以前的文件都有效)。它在运行中突然停止工作,没有抛出任何异常。整个代码被包装在一个 try- except 子句中,基本上是这样的:

try:
    report.read_and_postprocess() #: My parsing process (with ALOT of code inside)
    print("Finished...")
except NoObjectForElementError as error:
    print("Known error")
    raise error
except:
    print("Other error")
    raise
finally:
    print("Write this!")
Run Code Online (Sandbox Code Playgroud)

为了定位错误,我尝试使用print()语句来隔离代码停止的位置。然而,当我靠近时,停止点移动到另一个地方。

在我看来,这似乎存在内存泄漏,或者可能是我的 Python 环境出现了其他一些限制——但我在调试这一点方面不太熟练。我查看了脚本的内存和 CPU 使用情况。在脚本结束时,它仅消耗约 87MB 内存,使计算机的总内存仅从 67% 移动到 68%。(我只查看 Windows 10 任务管理器,因此我不能保证在脚本停止之前内存不会瞬间激增)

我已经重新运行该脚本数百次,并且从未收到错误消息,除了两次出现此错误:

Python Fatal Error: GC Object already Tracked
Run Code Online (Sandbox Code Playgroud)

我不知道如何继续调试这个,有人有任何提示吗?这可能是由记忆引起的,或者我怎样才能找到?还有其他一些 Python 限制可能会导致这种情况吗?(例如,我读过有关 20 个嵌套 for 循环的限制 - 但对我来说不应该是这样)

更新:它在排队期间停止report.read_and_postprocess()

有关环境的信息:Windows 10、Anaconda 3、Python 3.7。脚本在 anaconda 提示符下运行,并激活我的环境。

更新: …

python memory debugging garbage-collection

5
推荐指数
1
解决办法
2万
查看次数