IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Fatal Python error: Aborted 或者 double free or corruption尝试解决记录(未解决) -> 正文阅读

[人工智能]Fatal Python error: Aborted 或者 double free or corruption尝试解决记录(未解决)

1、问题背景

1)环境:服务器(非root)

2)需求:安装开源深度学习代码,本机cuda以及pytorch版本太低

3)操作:可能起源于删除环境变量引起的(unset)

????????a)查看环境变量env、printenv,查看单个变量printenv PATH或者echo $PATH

????????b)重置环境变量unset PATH(貌似不能删除单个路径),这个慎用!!!

????????c)添加环境变量export,例如export PATH=/usr/local/cuda-10.2/bin或者export? ? ? ? ? ?????????????PATH=/usr/local/cuda-10.2/bin:$PATH;另外,永久性添加在.bashrc文件中,并在命令行? ? ? ? ? ? ? ?source .bashrc临时添加直接在命令行执行即可。

?????????????区别:加:$PATH的表示这个路径放在最开头,那么系统检索的时候会优先选择该路径, ?????????????不加:$PATH就默认将路径放到该环境变量最后,如果前面有其他可调用的路径就不会调? ? ? ? ? ? ? ? ?用该路径。所以最好不要使用unset,而是使用export PATH= to/your/path:$PATH。

2、遇到的问题

1)安装mmcv时候,ERROR: Failed building wheel for opencv-python

????????可能的解决方案:运行 pip install -vv,查看哪些依赖库未安装或者未升级。

2)ModuleNotFoundError: No module named ‘skbuild’

? ? ? ? pip install?scikit-build,如果还有依赖继续pip install下去

? ? ? ? 如果有cmake相关的,参考:

ModuleNotFoundError: No module named ‘skbuild‘解决办法_月夜竹清的博客-CSDN博客_python skbuild

3)It seems that scikit-learn has not been built correctly或者dlopen: cannot load any more object with static TLS

????????把scikit-learn版本降下来

4)?Python error: Aborted 或者double free or corruption

遇到第4种问题是最坑的,需要定位问题出错的位置。
a)在python程序中添加如下代码,来追溯问题出现位置。

import faulthandler
faulthandler.enable()

b)GDB大法

1、在执行程序的最开头加入如下代码

import sys
def trace(frame, event, arg):
    print("%s, %s:%d" % (event, frame.f_code.co_filename, frame.f_lineno))
    return trace
sys.settrace(trace)
# 下面是原来的代码
import codecs  #
...

2、在命令行执行如下代码

gdb python

?然后在弹出的窗口中执行run /path/to/script.py

(gdb) run /path/to/script.py
## wait for segfault ##

一次调试段错误(segmentation fault)的经验 - 知乎?

What causes a Python segmentation fault? - Stack Overflow?

然后定位到详细问题如下5):

5)ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.

?然后采用unset更新环境变量后还是报错,怀疑是直接用了已经下载的安装包安装的,这些安装包是错误的版本。所有采用conda清除无用安装包,参考如下:

conda clean -p      //删除缓存
conda clean -y --all //删除pkgs目录下所有的无用安装包及cache

conda清除无用安装包_万无引力-的博客-CSDN博客_conda清理安装包

Python-Opencv [ERROR: recursion is detected during loading of "cv2"_凌空的桨的博客-CSDN博客

ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation. - emanlee - 博客园

3、总结?

结果还是报错,哭唧唧。

之后可能的尝试:1、删除开源代码,重新下载安装。2、如何保存虚拟环境,重新安装annoconda。Over!

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:42:53  更:2022-04-30 08:45:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:38:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码