python - 在 Ubuntu 上导入 TVM 后导入 readline segfaults
问题描述
我正在使用深度学习编译器TVM 。在我的工作流程中,能够使用import pdb; pdb.set_trace()
并放入调试器是很有用的。但是,pdb.set_trace()
在导入 TVM 后的任何时候都会导致段错误。
我当前的设置是 - Ubuntu 16.04(在适用于 Linux 的 Windows 子系统上运行,但这也发生在我的本机 16.04 机器上!) - Python 3.6
在 Windows 或 Mac 上不会出现此问题。
此问题仅在从命令行(即python3 minimum-reproducible-example.py
)运行脚本时出现,从python3
repl 运行时不会出现。
我用gdb做了一些调试,并缩小了范围:readline
导入包时出现错误。
最小可重现示例:
import tvm
import readline
使用 gdb 调试后,我将其跟踪到 cpython 中的特定行:
Program received signal SIGSEGV, Segmentation fault.
PyModule_GetState (m=0x0) at Objects/moduleobject.c:558
558 if (!PyModule_Check(m)) {
在这种情况下,m
is 0x0
,函数似乎没有预料到。
如果有人甚至可以向我指出更有用的调试方法,那将很有帮助!
解决方案
推荐阅读
- php - Composer 更新后更新包列表
- angular - 在重定向 Angular 6 上获取 HTTP 标头
- html - 带有下拉列表的表格主体列的位置粘性
- java - 如何异步将数据从一个类发送到另一个类?
- php - 当用户输入错误的 url 时如何禁止访问或重定向到另一个页面?
- javascript - 如何隐藏用户的响应?
- sql - PL SQL - 如何在带有条件返回的 for 循环中使用 select 语句?
- php - 如何使用 ajax 和 php 制作编辑模式
- python - 修改用于搜索图像中最大色点的代码,该代码适用于小图像但不适用于大图像
- angular-material - 使用 NgRx/effects 进行材质自动完成