一、问题概述

有时候我们在Linux环境下执行代码时,会莫名奇妙出现Segmentation fault (core dumped)这个报错,很难定位到问题,就算定位到了,如果发现是导包的问题,也很难判断。所以记录下相关解决方式,以待后续遇到能及时解决。
在这里插入图片描述

二、解决方式

1、定位错误行

1.1 导入faulthandler包

利用python3的faulthandler,可定位到出错的代码行

import faulthandler
#在import之后直接添加以下启用代码即可
faulthandler.enable()
后边正常写代码

1.2 启动代码

直接通过命令行来启用,运行时添加-X faulthandler参数即可

python -X faulthandler python代码.py

2、解决问题

2.1 导入的python包没有用到

如果python代码里的python包并没有被代码使用,则找出后,一定要删除,不然还是会报错。

2.2 导入的python包用到了

如果导入的python包确实用上了,但还是报错,则应该是导入包顺序问题。如果用IDEA那样的软件直接规范导包顺序,本地能跑,但到线上还是会出现问题。这个时候如果不确定顺序,可以写个测试代码,不停调换顺序,直到成功,这是笨办法,但很有用。
例如:报错的导包顺序
在这里插入图片描述
修改后
在这里插入图片描述
这样就成功运行代码了

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐